|
| 1 | +<?xml version="1.0" encoding="UTF-8"?> |
| 2 | +<record_update table="sys_ws_operation"> |
| 3 | + <sys_ws_operation action="INSERT_OR_UPDATE"> |
| 4 | + <active>true</active> |
| 5 | + <consumes>application/json,application/xml,text/xml</consumes> |
| 6 | + <consumes_customized>false</consumes_customized> |
| 7 | + <default_operation_uri/> |
| 8 | + <enforce_acl/> |
| 9 | + <http_method>POST</http_method> |
| 10 | + <name>Create Poll</name> |
| 11 | + <operation_script><![CDATA[(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) { |
| 12 | + var data = request.body.data; |
| 13 | + var pollHelper = new x_snc_polls.PollData_Creator(); |
| 14 | + var groupId = getUserGroupId(data.usergroup); |
| 15 | +
|
| 16 | + // Create Poll record |
| 17 | + var pollRecord = pollHelper.createPoll(data, groupId); |
| 18 | +
|
| 19 | + // Create question record and choices |
| 20 | + var questionData = data.questions; |
| 21 | + pollHelper.createQuestions(questionData, pollRecord.getUniqueValue()); |
| 22 | +
|
| 23 | + // Set Response Details |
| 24 | + var pollDetail = { |
| 25 | + number: pollRecord.number, |
| 26 | + name: pollRecord.name |
| 27 | + }; |
| 28 | + response.setStatus(201); |
| 29 | + response.setLocation(request.url + "/" + pollRecord.getUniqueValue()); |
| 30 | + response.setBody(pollDetail); |
| 31 | +
|
| 32 | + // Helper function |
| 33 | + function getUserGroupId(groupName) { |
| 34 | + var groupRec = new GlideRecord("sys_user_group"); |
| 35 | + groupRec.addQuery("name", groupName); |
| 36 | + groupRec.query(); |
| 37 | + groupRec.next(); |
| 38 | + return groupRec.getUniqueValue(); |
| 39 | + } |
| 40 | +
|
| 41 | +})(request, response);]]></operation_script> |
| 42 | + <operation_uri>/api/x_snc_polls/v1/poll</operation_uri> |
| 43 | + <produces>application/json,application/xml,text/xml</produces> |
| 44 | + <produces_customized>false</produces_customized> |
| 45 | + <relative_path>/</relative_path> |
| 46 | + <request_example/> |
| 47 | + <requires_acl_authorization>false</requires_acl_authorization> |
| 48 | + <requires_authentication>true</requires_authentication> |
| 49 | + <short_description/> |
| 50 | + <sys_class_name>sys_ws_operation</sys_class_name> |
| 51 | + <sys_created_by>admin</sys_created_by> |
| 52 | + <sys_created_on>2016-04-30 22:20:02</sys_created_on> |
| 53 | + <sys_customer_update>true</sys_customer_update> |
| 54 | + <sys_id>2ec79ee6134b1200ed373d62f244b0ea</sys_id> |
| 55 | + <sys_mod_count>0</sys_mod_count> |
| 56 | + <sys_name>Create Poll</sys_name> |
| 57 | + <sys_package display_value="Polls" source="x_snc_polls">cd1f2766133e1200ed373d62f244b082</sys_package> |
| 58 | + <sys_policy/> |
| 59 | + <sys_replace_on_upgrade>false</sys_replace_on_upgrade> |
| 60 | + <sys_scope display_value="Polls">cd1f2766133e1200ed373d62f244b082</sys_scope> |
| 61 | + <sys_update_name>sys_ws_operation_2ec79ee6134b1200ed373d62f244b0ea</sys_update_name> |
| 62 | + <sys_updated_by>admin</sys_updated_by> |
| 63 | + <sys_updated_on>2016-04-30 22:20:02</sys_updated_on> |
| 64 | + <web_service_definition display_value="Poll">e917dee6134b1200ed373d62f244b08f</web_service_definition> |
| 65 | + <web_service_version display_value="v1">a227dee6134b1200ed373d62f244b0cd</web_service_version> |
| 66 | + </sys_ws_operation> |
| 67 | +</record_update> |
0 commit comments