UNPKG

3.16 kBJavaScriptView Raw
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);