1 | (function() {
|
2 | var AjaxRequest, AjaxUtils, Model;
|
3 |
|
4 | AjaxUtils = require("./ajax_utils");
|
5 |
|
6 | Model = require('./model');
|
7 |
|
8 | AjaxRequest = (function() {
|
9 | function AjaxRequest() {}
|
10 |
|
11 | AjaxRequest.promise = {
|
12 | end: function() {}
|
13 | };
|
14 |
|
15 | AjaxRequest.enabled = true;
|
16 |
|
17 | AjaxRequest.disable = function(callback) {
|
18 | var e;
|
19 | if (this.enabled) {
|
20 | this.enabled = false;
|
21 | try {
|
22 | return callback();
|
23 | } catch (_error) {
|
24 | e = _error;
|
25 | throw e;
|
26 | } finally {
|
27 | this.enabled = true;
|
28 | }
|
29 | } else {
|
30 | return callback();
|
31 | }
|
32 | };
|
33 |
|
34 | AjaxRequest.queueRequest = {
|
35 | get: function(params, options) {
|
36 | return AjaxRequest.executeRestRequest("get", params, options);
|
37 | },
|
38 | post: function(params, options) {
|
39 | return AjaxRequest.executeRestRequest("post", params, options);
|
40 | },
|
41 | put: function(params, options) {
|
42 | return AjaxRequest.executeRestRequest("put", params, options);
|
43 | },
|
44 | del: function(params, options) {
|
45 | return AjaxRequest.executeRestRequest("del", params, options);
|
46 | }
|
47 | };
|
48 |
|
49 | AjaxRequest.executeRestRequest = function(type, params, options, model) {
|
50 | var fields, request, vfCall, _ref;
|
51 | if (this.enabled === false) {
|
52 | return this.promise;
|
53 | }
|
54 | options.url = options.url.replace(Model.host + "/", "");
|
55 | if ((_ref = params.data) != null) {
|
56 | delete _ref.id;
|
57 | }
|
58 | vfCall = 'r2.ThreeVotApiController.handleRest';
|
59 | fields = "";
|
60 | if (type === "put" || type === "post") {
|
61 | fields = JSON.stringify(params.data);
|
62 | } else if (type === "get") {
|
63 | fields = options.model.attributes.join(",");
|
64 | }
|
65 | return request = {
|
66 | end: function(callback) {
|
67 | return Visualforce.remoting.Manager.invokeAction(vfCall, type, options.url, fields, function(result, event) {
|
68 | if (event.status) {
|
69 | if (type === "put" && result === null || (type === "del" && result === null)) {
|
70 | result = '{}';
|
71 | } else if (type !== "del" && type !== "put" && result === null) {
|
72 | return callback("Null return from action method");
|
73 | }
|
74 | result = JSON.parse(result);
|
75 | if (Array.isArray(result) && result[0].message && result[0].errorCode) {
|
76 | return callback(result[0].message);
|
77 | }
|
78 | if (result && result.message && result.errorCode) {
|
79 | return callback(result[0].message);
|
80 | }
|
81 | if (result) {
|
82 | delete result.errors;
|
83 | }
|
84 | if (result) {
|
85 | delete result.success;
|
86 | }
|
87 | return callback(null, {
|
88 | body: result
|
89 | });
|
90 | } else if (event.type === 'exception') {
|
91 | return callback(event.message);
|
92 | } else {
|
93 | return callback(event.message);
|
94 | }
|
95 | }, {
|
96 | escape: false
|
97 | });
|
98 | }
|
99 | };
|
100 | };
|
101 |
|
102 | return AjaxRequest;
|
103 |
|
104 | })();
|
105 |
|
106 | module.exports = AjaxRequest;
|
107 |
|
108 | }).call(this);
|