|
16 | 16 | // Validate if poll record exists |
17 | 17 | var pollRecord = new GlideRecordSecure("x_snc_polls_poll"); |
18 | 18 | pollRecord.get(pollId); |
| 19 | + if(!pollRecord.isValidRecord()){ |
| 20 | + throw new sn_ws_err.NotFoundError("Poll Not found"); |
| 21 | + } |
19 | 22 |
|
20 | 23 | var voteData = request.body.data.votes; |
21 | 24 |
|
| 25 | + // Verify if already voted |
| 26 | + var pollResponseRecord = new GlideRecordSecure("x_snc_polls_poll_response"); |
| 27 | + pollResponseRecord.addQuery("poll", pollId); |
| 28 | + pollResponseRecord.addQuery("sys_created_by", gs.getUserName()); |
| 29 | + pollResponseRecord.query(); |
| 30 | + if(pollResponseRecord.next()){ |
| 31 | + throw new sn_ws_err.ConflictError("Already voted"); |
| 32 | + } |
| 33 | +
|
22 | 34 | // Record votes |
23 | 35 | pollHelper.voteInPoll(voteData, pollId); |
24 | 36 |
|
25 | 37 | // Set response details |
26 | 38 | response.setStatus(201); |
27 | | - response.setContentType("application/json"); |
28 | | - var responseBody = '{"message":"Voting successful"}'; |
29 | | - response.getStreamWriter().writeString(responseBody); |
| 39 | +
|
30 | 40 | })(request, response);]]></operation_script> |
31 | 41 | <operation_uri>/api/x_snc_polls/v2/poll/{poll_id}/vote</operation_uri> |
32 | 42 | <produces>application/json,application/xml,text/xml</produces> |
|
41 | 51 | <sys_created_on>2016-04-30 22:43:41</sys_created_on> |
42 | 52 | <sys_customer_update>true</sys_customer_update> |
43 | 53 | <sys_id>05fd9a6a134b1200ed373d62f244b0a1</sys_id> |
44 | | - <sys_mod_count>0</sys_mod_count> |
| 54 | + <sys_mod_count>1</sys_mod_count> |
45 | 55 | <sys_name>Vote (v2)</sys_name> |
46 | 56 | <sys_package display_value="Polls" source="x_snc_polls">cd1f2766133e1200ed373d62f244b082</sys_package> |
47 | 57 | <sys_policy/> |
48 | 58 | <sys_replace_on_upgrade>false</sys_replace_on_upgrade> |
49 | 59 | <sys_scope display_value="Polls">cd1f2766133e1200ed373d62f244b082</sys_scope> |
50 | 60 | <sys_update_name>sys_ws_operation_05fd9a6a134b1200ed373d62f244b0a1</sys_update_name> |
51 | 61 | <sys_updated_by>admin</sys_updated_by> |
52 | | - <sys_updated_on>2016-04-30 22:43:41</sys_updated_on> |
| 62 | + <sys_updated_on>2016-04-30 22:50:17</sys_updated_on> |
53 | 63 | <web_service_definition display_value="Poll">e917dee6134b1200ed373d62f244b08f</web_service_definition> |
54 | 64 | <web_service_version display_value="v2">0dfd9a6a134b1200ed373d62f244b09f</web_service_version> |
55 | 65 | </sys_ws_operation> |
|
0 commit comments