Skip to content

Commit b2c434b

Browse files
author
p16089
committed
Lab5-New Version
1 parent 0076811 commit b2c434b

8 files changed

Lines changed: 344 additions & 1 deletion

‎checksum.txt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
F6AH8UhU1sOUBd-So9AX3TrLaZU42vW_GEfhzjwqn1HmlSinjPGbZWBYm2w1Zc2RJC_5ee298CJKrK5t3hq6HLO0zYQc7QjLk4ce3d1_k2OPpvEMHT0UT94xs0JP8k4T8jtcnw2tGMvAYFARjLXirzcZfY7ZNSecbx6wChqDk6xPiXk2HUzn9BWWZtLF3M0SRPSHHdEVuphSPpmMZhtxcKOVvV7gAmtuGFux75LyXndwzl_qKRPt-vct4mVtgLqavx1n9w0nRnMvHlGXnrZZ-YfoBSeAvsOg8H0Z9qaxH2LKHKYhj4Cq8MTW9wijn3C2i4S-rllKaclae_2obeHaLaPfqdCPr5lNOQbrrUtrAIdDm5Y6UDKUVey3vvgSUT5KHAGk4EWtiv7Pk4JFcoszJIhc-B-hRQyjvRo9oCPldEVzoYEOVn6jy91XGA0Snj1Zo-uP2IQpeWG_Hqczg_KAcBiSWH1z5WpUGJpTMz-K8ohrmuYCsuDFIIpveaFrdFfUTtlbcjQUe09j4YiDAna5vFBgQqIpkJ8mZ_Jv9ho-LOJ6rIaBfkenbFm5pW_1xZHevpptL9J19T6CaPDI29n4HBRf6OBuSX2yFWSPnjYg-GKLNQoxuSp9izCQcZQIcamZ8E86bQzQO7d1Tx9I1I3bT025q6nq3tYBELugnPSDzZI
1+
B3O8BciWPamYG4awz_RfN7NEyq2XmxrijdowVC9r6m0rdXFxz46vLM-0WMKUKXrq5qvWUnV9w-gCiW1y5mqopKx4Ez7q2KC15n6ylktnVTAE6i2xGMog_iwkvLPoPhcdMjJrI__Q9wFcu2quxgaGvSVRqw8XPjyoT3StIIelnWeRVMhehBxJhC0FDfQ4z8wwfoIJHZpLpuA74-q33z7pUuceR52RvRZTp3KaX4e2MqmCgv3wZ-3Tloho4b7ouUHAj8L8aVJwRpdruU4ZSdYCFFlnqwRAdda2yquPcGbushd-sVZ_b3qonChYKCfATzcl3vi_IvfdGLNKVtBeZ9RbuM8CZCBlsKEb1MzmXefh-mUrotnmCch3_GzNcVE-XU-U9g44JjWloAuEokPkf6f4AS5UI2bQU5vldBGCYCo5HDLvN6G6YOmsPLsVB5gNn09lPyShgBwKzjD_IT10s6RFsqQLfs28X0zIAyEbYgR5MVVcB9u39hXxxQwXosBHafzkich6HTcaqzDxxXcg2Uvkw2YP1WknxiKaeZQCtorQCyc7kelx5saeht9hArw1ovcWf8JS3IxHOFyWgZBshBxsCB0VUweVmyLxfkIaHKFd4OEO7HH9WFbHBBHJ9ruS-R5rsA4usYIDvd2mialcNKPWoO5yZfZlRR1xIKzsfSef-Bg
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
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>7cf9de2a134b1200ed373d62f244b050</enforce_acl>
9+
<http_method>DELETE</http_method>
10+
<name>Delete Poll (v2)</name>
11+
<operation_script><![CDATA[(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
12+
var pollId = request.pathParams.poll_id;
13+
var pollRecord = new GlideRecordSecure("x_snc_polls_poll");
14+
pollRecord.get(pollId);
15+
if (pollRecord.isValidRecord()) {
16+
pollRecord.deleteRecord();
17+
}
18+
response.setStatus(204);
19+
})(request, response);]]></operation_script>
20+
<operation_uri>/api/x_snc_polls/v2/poll/{poll_id}</operation_uri>
21+
<produces>application/json,application/xml,text/xml</produces>
22+
<produces_customized>false</produces_customized>
23+
<relative_path>/{poll_id}</relative_path>
24+
<request_example/>
25+
<requires_acl_authorization>true</requires_acl_authorization>
26+
<requires_authentication>true</requires_authentication>
27+
<short_description/>
28+
<sys_class_name>sys_ws_operation</sys_class_name>
29+
<sys_created_by>admin</sys_created_by>
30+
<sys_created_on>2016-04-30 22:43:40</sys_created_on>
31+
<sys_customer_update>true</sys_customer_update>
32+
<sys_id>05fd9a6a134b1200ed373d62f244b0a0</sys_id>
33+
<sys_mod_count>0</sys_mod_count>
34+
<sys_name>Delete Poll (v2)</sys_name>
35+
<sys_package display_value="Polls" source="x_snc_polls">cd1f2766133e1200ed373d62f244b082</sys_package>
36+
<sys_policy/>
37+
<sys_replace_on_upgrade>false</sys_replace_on_upgrade>
38+
<sys_scope display_value="Polls">cd1f2766133e1200ed373d62f244b082</sys_scope>
39+
<sys_update_name>sys_ws_operation_05fd9a6a134b1200ed373d62f244b0a0</sys_update_name>
40+
<sys_updated_by>admin</sys_updated_by>
41+
<sys_updated_on>2016-04-30 22:43:40</sys_updated_on>
42+
<web_service_definition display_value="Poll">e917dee6134b1200ed373d62f244b08f</web_service_definition>
43+
<web_service_version display_value="v2">0dfd9a6a134b1200ed373d62f244b09f</web_service_version>
44+
</sys_ws_operation>
45+
</record_update>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
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>Vote (v2)</name>
11+
<operation_script><![CDATA[(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
12+
13+
var pollId = request.pathParams.poll_id;
14+
var pollHelper = new x_snc_polls.PollData_Creator();
15+
16+
// Validate if poll record exists
17+
var pollRecord = new GlideRecordSecure("x_snc_polls_poll");
18+
pollRecord.get(pollId);
19+
20+
var voteData = request.body.data.votes;
21+
22+
// Record votes
23+
pollHelper.voteInPoll(voteData, pollId);
24+
25+
// Set response details
26+
response.setStatus(201);
27+
response.setContentType("application/json");
28+
var responseBody = '{"message":"Voting successful"}';
29+
response.getStreamWriter().writeString(responseBody);
30+
})(request, response);]]></operation_script>
31+
<operation_uri>/api/x_snc_polls/v2/poll/{poll_id}/vote</operation_uri>
32+
<produces>application/json,application/xml,text/xml</produces>
33+
<produces_customized>false</produces_customized>
34+
<relative_path>/{poll_id}/vote</relative_path>
35+
<request_example/>
36+
<requires_acl_authorization>false</requires_acl_authorization>
37+
<requires_authentication>true</requires_authentication>
38+
<short_description/>
39+
<sys_class_name>sys_ws_operation</sys_class_name>
40+
<sys_created_by>admin</sys_created_by>
41+
<sys_created_on>2016-04-30 22:43:41</sys_created_on>
42+
<sys_customer_update>true</sys_customer_update>
43+
<sys_id>05fd9a6a134b1200ed373d62f244b0a1</sys_id>
44+
<sys_mod_count>0</sys_mod_count>
45+
<sys_name>Vote (v2)</sys_name>
46+
<sys_package display_value="Polls" source="x_snc_polls">cd1f2766133e1200ed373d62f244b082</sys_package>
47+
<sys_policy/>
48+
<sys_replace_on_upgrade>false</sys_replace_on_upgrade>
49+
<sys_scope display_value="Polls">cd1f2766133e1200ed373d62f244b082</sys_scope>
50+
<sys_update_name>sys_ws_operation_05fd9a6a134b1200ed373d62f244b0a1</sys_update_name>
51+
<sys_updated_by>admin</sys_updated_by>
52+
<sys_updated_on>2016-04-30 22:43:41</sys_updated_on>
53+
<web_service_definition display_value="Poll">e917dee6134b1200ed373d62f244b08f</web_service_definition>
54+
<web_service_version display_value="v2">0dfd9a6a134b1200ed373d62f244b09f</web_service_version>
55+
</sys_ws_operation>
56+
</record_update>
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
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>PATCH</http_method>
10+
<name>Edit poll (v2)</name>
11+
<operation_script><![CDATA[(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
12+
var pollId = request.pathParams.poll_id;
13+
var pollHelper = new x_snc_polls.PollData_Creator();
14+
15+
// Validate if poll record exists
16+
var pollRecord = new GlideRecordSecure("x_snc_polls_poll");
17+
pollRecord.get(pollId);
18+
19+
var questionData = request.body.data;
20+
21+
// Create question record and choices
22+
pollHelper.createQuestions(questionData, pollId);
23+
24+
// Set response details
25+
response.setStatus(204);
26+
})(request, response);]]></operation_script>
27+
<operation_uri>/api/x_snc_polls/v2/poll/{poll_id}</operation_uri>
28+
<produces>application/json,application/xml,text/xml</produces>
29+
<produces_customized>false</produces_customized>
30+
<relative_path>/{poll_id}</relative_path>
31+
<request_example/>
32+
<requires_acl_authorization>false</requires_acl_authorization>
33+
<requires_authentication>true</requires_authentication>
34+
<short_description/>
35+
<sys_class_name>sys_ws_operation</sys_class_name>
36+
<sys_created_by>admin</sys_created_by>
37+
<sys_created_on>2016-04-30 22:43:41</sys_created_on>
38+
<sys_customer_update>true</sys_customer_update>
39+
<sys_id>05fd9a6a134b1200ed373d62f244b0a2</sys_id>
40+
<sys_mod_count>0</sys_mod_count>
41+
<sys_name>Edit poll (v2)</sys_name>
42+
<sys_package display_value="Polls" source="x_snc_polls">cd1f2766133e1200ed373d62f244b082</sys_package>
43+
<sys_policy/>
44+
<sys_replace_on_upgrade>false</sys_replace_on_upgrade>
45+
<sys_scope display_value="Polls">cd1f2766133e1200ed373d62f244b082</sys_scope>
46+
<sys_update_name>sys_ws_operation_05fd9a6a134b1200ed373d62f244b0a2</sys_update_name>
47+
<sys_updated_by>admin</sys_updated_by>
48+
<sys_updated_on>2016-04-30 22:43:41</sys_updated_on>
49+
<web_service_definition display_value="Poll">e917dee6134b1200ed373d62f244b08f</web_service_definition>
50+
<web_service_version display_value="v2">0dfd9a6a134b1200ed373d62f244b09f</web_service_version>
51+
</sys_ws_operation>
52+
</record_update>
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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>7cf9de2a134b1200ed373d62f244b050</enforce_acl>
9+
<http_method>GET</http_method>
10+
<name>Retrieve poll results (v2)</name>
11+
<operation_script><![CDATA[(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
12+
var id = request.pathParams.poll_id;
13+
var pollHelper = new x_snc_polls.PollData_Retriever();
14+
var pollRecord = new GlideRecordSecure("x_snc_polls_poll");
15+
pollRecord.get(id);
16+
17+
var pollResponse = {
18+
name: pollRecord.getValue("name"),
19+
questions: pollHelper.getResultsByUser(id)
20+
};
21+
return pollResponse;
22+
})(request, response);]]></operation_script>
23+
<operation_uri>/api/x_snc_polls/v2/poll/{poll_id}/results</operation_uri>
24+
<produces>application/json,application/xml,text/xml</produces>
25+
<produces_customized>false</produces_customized>
26+
<relative_path>/{poll_id}/results</relative_path>
27+
<request_example/>
28+
<requires_acl_authorization>true</requires_acl_authorization>
29+
<requires_authentication>true</requires_authentication>
30+
<short_description/>
31+
<sys_class_name>sys_ws_operation</sys_class_name>
32+
<sys_created_by>admin</sys_created_by>
33+
<sys_created_on>2016-04-30 22:43:40</sys_created_on>
34+
<sys_customer_update>true</sys_customer_update>
35+
<sys_id>0dfd9a6a134b1200ed373d62f244b0a0</sys_id>
36+
<sys_mod_count>0</sys_mod_count>
37+
<sys_name>Retrieve poll results (v2)</sys_name>
38+
<sys_package display_value="Polls" source="x_snc_polls">cd1f2766133e1200ed373d62f244b082</sys_package>
39+
<sys_policy/>
40+
<sys_replace_on_upgrade>false</sys_replace_on_upgrade>
41+
<sys_scope display_value="Polls">cd1f2766133e1200ed373d62f244b082</sys_scope>
42+
<sys_update_name>sys_ws_operation_0dfd9a6a134b1200ed373d62f244b0a0</sys_update_name>
43+
<sys_updated_by>admin</sys_updated_by>
44+
<sys_updated_on>2016-04-30 22:43:40</sys_updated_on>
45+
<web_service_definition display_value="Poll">e917dee6134b1200ed373d62f244b08f</web_service_definition>
46+
<web_service_version display_value="v2">0dfd9a6a134b1200ed373d62f244b09f</web_service_version>
47+
</sys_ws_operation>
48+
</record_update>
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
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 (v2)</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/v2/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:43:41</sys_created_on>
53+
<sys_customer_update>true</sys_customer_update>
54+
<sys_id>0dfd9a6a134b1200ed373d62f244b0a1</sys_id>
55+
<sys_mod_count>0</sys_mod_count>
56+
<sys_name>Create Poll (v2)</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_0dfd9a6a134b1200ed373d62f244b0a1</sys_update_name>
62+
<sys_updated_by>admin</sys_updated_by>
63+
<sys_updated_on>2016-04-30 22:43:41</sys_updated_on>
64+
<web_service_definition display_value="Poll">e917dee6134b1200ed373d62f244b08f</web_service_definition>
65+
<web_service_version display_value="v2">0dfd9a6a134b1200ed373d62f244b09f</web_service_version>
66+
</sys_ws_operation>
67+
</record_update>
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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>GET</http_method>
10+
<name>Retrieve poll detail (v2)</name>
11+
<operation_script><![CDATA[(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
12+
var id = request.pathParams.poll_id;
13+
var pollHelper = new x_snc_polls.PollData_Retriever();
14+
var pollRecord = new GlideRecordSecure("x_snc_polls_poll");
15+
pollRecord.get(id);
16+
17+
var pollResponse = {
18+
name: pollRecord.getValue("name"),
19+
questions: pollHelper.getQuestions(id).as_list,
20+
};
21+
return pollResponse;
22+
23+
})(request, response);]]></operation_script>
24+
<operation_uri>/api/x_snc_polls/v2/poll/{poll_id}</operation_uri>
25+
<produces>application/json,application/xml,text/xml</produces>
26+
<produces_customized>false</produces_customized>
27+
<relative_path>/{poll_id}</relative_path>
28+
<request_example/>
29+
<requires_acl_authorization>false</requires_acl_authorization>
30+
<requires_authentication>true</requires_authentication>
31+
<short_description/>
32+
<sys_class_name>sys_ws_operation</sys_class_name>
33+
<sys_created_by>admin</sys_created_by>
34+
<sys_created_on>2016-04-30 22:43:41</sys_created_on>
35+
<sys_customer_update>true</sys_customer_update>
36+
<sys_id>0dfd9a6a134b1200ed373d62f244b0a2</sys_id>
37+
<sys_mod_count>0</sys_mod_count>
38+
<sys_name>Retrieve poll detail (v2)</sys_name>
39+
<sys_package display_value="Polls" source="x_snc_polls">cd1f2766133e1200ed373d62f244b082</sys_package>
40+
<sys_policy/>
41+
<sys_replace_on_upgrade>false</sys_replace_on_upgrade>
42+
<sys_scope display_value="Polls">cd1f2766133e1200ed373d62f244b082</sys_scope>
43+
<sys_update_name>sys_ws_operation_0dfd9a6a134b1200ed373d62f244b0a2</sys_update_name>
44+
<sys_updated_by>admin</sys_updated_by>
45+
<sys_updated_on>2016-04-30 22:43:41</sys_updated_on>
46+
<web_service_definition display_value="Poll">e917dee6134b1200ed373d62f244b08f</web_service_definition>
47+
<web_service_version display_value="v2">0dfd9a6a134b1200ed373d62f244b09f</web_service_version>
48+
</sys_ws_operation>
49+
</record_update>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<record_update table="sys_ws_version">
3+
<sys_ws_version action="INSERT_OR_UPDATE">
4+
<active>true</active>
5+
<deprecated>false</deprecated>
6+
<is_default>false</is_default>
7+
<short_description/>
8+
<sys_class_name>sys_ws_version</sys_class_name>
9+
<sys_created_by>admin</sys_created_by>
10+
<sys_created_on>2016-04-30 22:43:40</sys_created_on>
11+
<sys_customer_update>true</sys_customer_update>
12+
<sys_id>0dfd9a6a134b1200ed373d62f244b09f</sys_id>
13+
<sys_mod_count>0</sys_mod_count>
14+
<sys_name>v2</sys_name>
15+
<sys_package display_value="Polls" source="x_snc_polls">cd1f2766133e1200ed373d62f244b082</sys_package>
16+
<sys_policy/>
17+
<sys_replace_on_upgrade>false</sys_replace_on_upgrade>
18+
<sys_scope display_value="Polls">cd1f2766133e1200ed373d62f244b082</sys_scope>
19+
<sys_update_name>sys_ws_version_0dfd9a6a134b1200ed373d62f244b09f</sys_update_name>
20+
<sys_updated_by>admin</sys_updated_by>
21+
<sys_updated_on>2016-04-30 22:43:40</sys_updated_on>
22+
<version>2</version>
23+
<version_id>v2</version_id>
24+
<web_service_definition display_value="Poll">e917dee6134b1200ed373d62f244b08f</web_service_definition>
25+
</sys_ws_version>
26+
</record_update>

0 commit comments

Comments
 (0)