@resolveio/server-lib 3.2.10 → 3.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/package.json +26 -26
  2. package/collections/active-subscription.collection.d.ts +0 -7
  3. package/collections/active-subscription.collection.js +0 -68
  4. package/collections/app-status.collection.d.ts +0 -7
  5. package/collections/app-status.collection.js +0 -43
  6. package/collections/app-version.collection.d.ts +0 -7
  7. package/collections/app-version.collection.js +0 -56
  8. package/collections/billing-logged-in-users.collection.d.ts +0 -7
  9. package/collections/billing-logged-in-users.collection.js +0 -73
  10. package/collections/counter.collection.d.ts +0 -9
  11. package/collections/counter.collection.js +0 -73
  12. package/collections/cron-job-history.collection.d.ts +0 -7
  13. package/collections/cron-job-history.collection.js +0 -86
  14. package/collections/cron-job.collection.d.ts +0 -7
  15. package/collections/cron-job.collection.js +0 -89
  16. package/collections/file.collection.d.ts +0 -9
  17. package/collections/file.collection.js +0 -73
  18. package/collections/flag.collection.d.ts +0 -7
  19. package/collections/flag.collection.js +0 -47
  20. package/collections/log.collection.d.ts +0 -7
  21. package/collections/log.collection.js +0 -65
  22. package/collections/logged-in-users.collection.d.ts +0 -7
  23. package/collections/logged-in-users.collection.js +0 -70
  24. package/collections/method-call.collection.d.ts +0 -6
  25. package/collections/method-call.collection.js +0 -44
  26. package/collections/method-response.collection.d.ts +0 -6
  27. package/collections/method-response.collection.js +0 -48
  28. package/collections/notification.collection.d.ts +0 -7
  29. package/collections/notification.collection.js +0 -43
  30. package/collections/queue-flag.collection.d.ts +0 -7
  31. package/collections/queue-flag.collection.js +0 -41
  32. package/collections/queue-method.collection.d.ts +0 -7
  33. package/collections/queue-method.collection.js +0 -119
  34. package/collections/queue-response.collection.d.ts +0 -7
  35. package/collections/queue-response.collection.js +0 -74
  36. package/collections/support-ticket.collection.d.ts +0 -7
  37. package/collections/support-ticket.collection.js +0 -200
  38. package/collections/user.collection.d.ts +0 -9
  39. package/collections/user.collection.js +0 -153
  40. package/cron/cron.d.ts +0 -5
  41. package/cron/cron.js +0 -160
  42. package/fixtures/cron-jobs.d.ts +0 -1
  43. package/fixtures/cron-jobs.js +0 -90
  44. package/fixtures/init.d.ts +0 -1
  45. package/fixtures/init.js +0 -67
  46. package/http/auth.d.ts +0 -2
  47. package/http/auth.js +0 -468
  48. package/http/health.d.ts +0 -1
  49. package/http/health.js +0 -8
  50. package/index.d.ts +0 -16
  51. package/index.js +0 -125
  52. package/managers/cron.manager.d.ts +0 -16
  53. package/managers/cron.manager.js +0 -202
  54. package/managers/database.manager.d.ts +0 -6
  55. package/managers/database.manager.js +0 -12
  56. package/managers/method.manager.d.ts +0 -28
  57. package/managers/method.manager.js +0 -584
  58. package/managers/queue-method.manager.d.ts +0 -13
  59. package/managers/queue-method.manager.js +0 -240
  60. package/managers/subscription.manager.d.ts +0 -28
  61. package/managers/subscription.manager.js +0 -803
  62. package/managers/support.manager.d.ts +0 -22
  63. package/managers/support.manager.js +0 -320
  64. package/methods/accounts.d.ts +0 -2
  65. package/methods/accounts.js +0 -253
  66. package/methods/aws.d.ts +0 -2
  67. package/methods/aws.js +0 -387
  68. package/methods/cloudconvert.d.ts +0 -2
  69. package/methods/cloudconvert.js +0 -37
  70. package/methods/collections.d.ts +0 -2
  71. package/methods/collections.js +0 -750
  72. package/methods/counters.d.ts +0 -2
  73. package/methods/counters.js +0 -107
  74. package/methods/cron-jobs.d.ts +0 -2
  75. package/methods/cron-jobs.js +0 -132
  76. package/methods/flags.d.ts +0 -2
  77. package/methods/flags.js +0 -6
  78. package/methods/logs.d.ts +0 -2
  79. package/methods/logs.js +0 -29
  80. package/methods/pdf.d.ts +0 -2
  81. package/methods/pdf.js +0 -303
  82. package/models/active-subscription.model.d.ts +0 -13
  83. package/models/active-subscription.model.js +0 -2
  84. package/models/app-status.model.d.ts +0 -4
  85. package/models/app-status.model.js +0 -2
  86. package/models/app-version.model.d.ts +0 -4
  87. package/models/app-version.model.js +0 -2
  88. package/models/billing-logged-in-users.model.d.ts +0 -7
  89. package/models/billing-logged-in-users.model.js +0 -2
  90. package/models/collection-document.model.d.ts +0 -6
  91. package/models/collection-document.model.js +0 -2
  92. package/models/counter.model.d.ts +0 -5
  93. package/models/counter.model.js +0 -2
  94. package/models/cron-job-history.model.d.ts +0 -12
  95. package/models/cron-job-history.model.js +0 -2
  96. package/models/cron-job.model.d.ts +0 -13
  97. package/models/cron-job.model.js +0 -2
  98. package/models/dialog.model.d.ts +0 -23
  99. package/models/dialog.model.js +0 -2
  100. package/models/file.model.d.ts +0 -9
  101. package/models/file.model.js +0 -2
  102. package/models/flag.model.d.ts +0 -5
  103. package/models/flag.model.js +0 -2
  104. package/models/log.model.d.ts +0 -11
  105. package/models/log.model.js +0 -2
  106. package/models/logged-in-users.model.d.ts +0 -9
  107. package/models/logged-in-users.model.js +0 -2
  108. package/models/method-call.model.d.ts +0 -7
  109. package/models/method-call.model.js +0 -2
  110. package/models/method-response.model.d.ts +0 -8
  111. package/models/method-response.model.js +0 -2
  112. package/models/method.model.d.ts +0 -10
  113. package/models/method.model.js +0 -2
  114. package/models/notification.model.d.ts +0 -4
  115. package/models/notification.model.js +0 -2
  116. package/models/pagination.model.d.ts +0 -11
  117. package/models/pagination.model.js +0 -20
  118. package/models/permission.model.d.ts +0 -12
  119. package/models/permission.model.js +0 -2
  120. package/models/queue-method.model.d.ts +0 -10
  121. package/models/queue-method.model.js +0 -2
  122. package/models/queue-response.model.d.ts +0 -10
  123. package/models/queue-response.model.js +0 -2
  124. package/models/select-data-label.model.d.ts +0 -9
  125. package/models/select-data-label.model.js +0 -2
  126. package/models/server-response.model.d.ts +0 -5
  127. package/models/server-response.model.js +0 -2
  128. package/models/subscription.model.d.ts +0 -30
  129. package/models/subscription.model.js +0 -2
  130. package/models/support-method.model.d.ts +0 -9
  131. package/models/support-method.model.js +0 -2
  132. package/models/support-ticket.model.d.ts +0 -61
  133. package/models/support-ticket.model.js +0 -2
  134. package/models/user.model.d.ts +0 -14
  135. package/models/user.model.js +0 -2
  136. package/private/email-templates/enrollment.html +0 -12
  137. package/private/email-templates/forgot-password.html +0 -12
  138. package/private/email-templates/support-ticket-deleted.html +0 -40
  139. package/private/email-templates/support-ticket-modified.html +0 -71
  140. package/private/email-templates/support-ticket.html +0 -71
  141. package/private/images/ResolveIO.png +0 -0
  142. package/publications/app-status.d.ts +0 -2
  143. package/publications/app-status.js +0 -14
  144. package/publications/app-version.d.ts +0 -2
  145. package/publications/app-version.js +0 -14
  146. package/publications/billing-logged-in-users.d.ts +0 -1
  147. package/publications/billing-logged-in-users.js +0 -63
  148. package/publications/cron-jobs.d.ts +0 -2
  149. package/publications/cron-jobs.js +0 -14
  150. package/publications/files.d.ts +0 -2
  151. package/publications/files.js +0 -71
  152. package/publications/flags.d.ts +0 -2
  153. package/publications/flags.js +0 -23
  154. package/publications/logs.d.ts +0 -2
  155. package/publications/logs.js +0 -26
  156. package/publications/method-calls.d.ts +0 -2
  157. package/publications/method-calls.js +0 -14
  158. package/publications/method-responses.d.ts +0 -2
  159. package/publications/method-responses.js +0 -14
  160. package/publications/notifications.d.ts +0 -2
  161. package/publications/notifications.js +0 -14
  162. package/publications/super-admin.d.ts +0 -2
  163. package/publications/super-admin.js +0 -21
  164. package/publications/support-tickets.d.ts +0 -1
  165. package/publications/support-tickets.js +0 -200
  166. package/server-app.d.ts +0 -35
  167. package/server-app.js +0 -636
  168. package/support-methods/aws.d.ts +0 -2
  169. package/support-methods/aws.js +0 -276
  170. package/support-methods/collections.d.ts +0 -2
  171. package/support-methods/collections.js +0 -471
  172. package/support-methods/counters.d.ts +0 -2
  173. package/support-methods/counters.js +0 -189
  174. package/support-methods/support.d.ts +0 -2
  175. package/support-methods/support.js +0 -236
  176. package/util/common.d.ts +0 -14
  177. package/util/common.js +0 -341
package/server-app.js DELETED
@@ -1,636 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (_) try {
17
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- var http_1 = require("http");
39
- var express = require("express");
40
- var mongoose = require("mongoose");
41
- var bodyParser = require("body-parser");
42
- var passport = require("passport");
43
- var passportlocal = require("passport-local");
44
- var WebSocket = require("ws");
45
- var jwt = require("jsonwebtoken");
46
- var uuid = require("uuid/v4");
47
- var auth_1 = require("./http/auth");
48
- var common_1 = require("./util/common");
49
- var health_1 = require("./http/health");
50
- var method_call_collection_1 = require("./collections/method-call.collection");
51
- var mongoose_1 = require("mongoose");
52
- var method_response_collection_1 = require("./collections/method-response.collection");
53
- var log_collection_1 = require("./collections/log.collection");
54
- var moment = require("moment");
55
- var user_collection_1 = require("./collections/user.collection");
56
- var cron_manager_1 = require("./managers/cron.manager");
57
- var method_manager_1 = require("./managers/method.manager");
58
- var subscription_manager_1 = require("./managers/subscription.manager");
59
- var support_manager_1 = require("./managers/support.manager");
60
- var queue_method_manager_1 = require("./managers/queue-method.manager");
61
- var common_2 = require("./util/common");
62
- var ResolveIOMainServer = /** @class */ (function () {
63
- function ResolveIOMainServer(mainServer, serverConfig, clientDir) {
64
- this._msgQueue = [];
65
- this._msgQueueRunning = false;
66
- this._resolveioServer = mainServer;
67
- this._serverConfig = serverConfig;
68
- this._clientDir = clientDir;
69
- // process.on('unhandledException').
70
- // Start express app
71
- this._app = express();
72
- // Use body parser for http call (login)
73
- this._app.use(bodyParser.json({ limit: '5mb' }));
74
- this._app.use(bodyParser.urlencoded({ limit: '5mb', extended: true }));
75
- // Set port
76
- this._port = process.env.PORT || serverConfig['PORT'];
77
- // Create http server and websock server
78
- this.createServer();
79
- // Set CORS
80
- this._app.use(function (req, res, next) {
81
- // Website you wish to allow to connect
82
- // res.setHeader('Access-Control-Allow-Origin', serverConfig['ROOT_URL']);
83
- res.setHeader('Access-Control-Allow-Origin', '*');
84
- // Request methods you wish to allow
85
- // res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
86
- res.setHeader('Access-Control-Allow-Methods', 'GET, POST');
87
- // Request headers you wish to allow
88
- res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
89
- // Set to true if you need the website to include cookies in the requests sent
90
- // to the API (e.g. in case you use sessions)
91
- res.setHeader('Access-Control-Allow-Credentials', 'false');
92
- // Pass to next layer of middleware
93
- next();
94
- });
95
- // Set up http login route
96
- auth_1.setupAuthRoutes(this, this._app, serverConfig);
97
- health_1.setupHealthRoutes(this._app, serverConfig);
98
- }
99
- ResolveIOMainServer.prototype.getWS = function (id_ws) {
100
- var res = null;
101
- this._wss.clients.forEach(function (ws) {
102
- if (ws['id_socket'] === id_ws) {
103
- res = ws;
104
- }
105
- });
106
- return res;
107
- };
108
- ResolveIOMainServer.prototype.getWSList = function () {
109
- var res = [];
110
- this._wss.clients.forEach(function (ws) {
111
- res.push(ws['id_socket']);
112
- });
113
- return res;
114
- };
115
- ResolveIOMainServer.prototype.getCronManager = function () {
116
- return this._cronManager;
117
- };
118
- ResolveIOMainServer.prototype.getMethodManager = function () {
119
- return this._methodManager;
120
- };
121
- ResolveIOMainServer.prototype.getSubscriptionManager = function () {
122
- return this._subscriptionManager;
123
- };
124
- ResolveIOMainServer.prototype.getQueueManager = function () {
125
- return this._queueManager;
126
- };
127
- ResolveIOMainServer.prototype.getSupportManager = function () {
128
- return this._supportManager;
129
- };
130
- ResolveIOMainServer.prototype.createServer = function () {
131
- var _this = this;
132
- // Start express server
133
- this._server = http_1.createServer(this._app);
134
- // Start websocket server
135
- // Verify client with token before opening socket
136
- this._wss = new WebSocket.Server({
137
- server: this._server,
138
- verifyClient: function (info, cb) { return __awaiter(_this, void 0, void 0, function () {
139
- var infoData, token;
140
- var _this = this;
141
- return __generator(this, function (_a) {
142
- infoData = info.req.headers['sec-websocket-protocol'].split(/,/);
143
- if (info.origin !== this._serverConfig['ROOT_URL'] && info.origin !== this._serverConfig['SEC_ROOT_URL'] && info.origin !== this._serverConfig['RESOLVEIO_URL'] && info.origin !== this._serverConfig['RESOLVEIO_SECONDARY_URL']) {
144
- cb(false, 401, 'Unauthorized');
145
- }
146
- else {
147
- if (infoData[1]) { //app version
148
- token = infoData[0];
149
- if (!token) {
150
- cb(false, 401, 'Unauthorized');
151
- }
152
- else {
153
- jwt.verify(token, this._serverConfig['JWT_SECRET'], function (err, decoded) { return __awaiter(_this, void 0, void 0, function () {
154
- var user, err_1;
155
- return __generator(this, function (_a) {
156
- switch (_a.label) {
157
- case 0:
158
- if (!err) return [3 /*break*/, 1];
159
- cb(false, 401, 'Unauthorized');
160
- return [3 /*break*/, 5];
161
- case 1:
162
- info.req['id_user'] = decoded['id_user'];
163
- _a.label = 2;
164
- case 2:
165
- _a.trys.push([2, 4, , 5]);
166
- return [4 /*yield*/, user_collection_1.Users.findById(decoded['id_user']).exec()];
167
- case 3:
168
- user = _a.sent();
169
- if (user) {
170
- info.req['user'] = user.fullname;
171
- cb(true);
172
- }
173
- else {
174
- cb(false);
175
- }
176
- return [3 /*break*/, 5];
177
- case 4:
178
- err_1 = _a.sent();
179
- cb(false);
180
- return [3 /*break*/, 5];
181
- case 5: return [2 /*return*/];
182
- }
183
- });
184
- }); });
185
- }
186
- }
187
- else {
188
- cb(false, 401, 'Invalid Version');
189
- }
190
- }
191
- return [2 /*return*/];
192
- });
193
- }); }
194
- });
195
- // Start Mongoose (MongoDB Connection)
196
- this.setUpMongoose();
197
- };
198
- ResolveIOMainServer.prototype.setUpMongoose = function () {
199
- this.setUpPassport();
200
- // Enable lean by default
201
- var __setOptions = mongoose_1.Query.prototype.setOptions;
202
- mongoose_1.Query.prototype.setOptions = function (options) {
203
- if (this._mongooseOptions.lean == null && this.mongooseCollection.collectionName !== 'users') {
204
- this._mongooseOptions.lean = true;
205
- }
206
- __setOptions.apply(this, arguments);
207
- return this;
208
- };
209
- // Start Managers
210
- this._subscriptionManager = new subscription_manager_1.SubscriptionManager(this, this._wss, this._serverConfig);
211
- this._methodManager = new method_manager_1.MethodManager(this, this._serverConfig, this._clientDir);
212
- this._supportManager = new support_manager_1.SupportManager(this, this._serverConfig, this._clientDir);
213
- this._cronManager = new cron_manager_1.CronManager(this);
214
- this._queueManager = new queue_method_manager_1.QueueMethodManager(this);
215
- this.listen();
216
- mongoose.set('useFindAndModify', false);
217
- // mongoose.set('useCreateIndexes', true);
218
- };
219
- ResolveIOMainServer.prototype.setUpPassport = function () {
220
- // Set up login passort
221
- this._app.use(passport.initialize());
222
- // Start user authentication
223
- passport.use(new passportlocal.Strategy(user_collection_1.Users.authenticate()));
224
- passport.serializeUser(user_collection_1.Users.serializeUser());
225
- passport.deserializeUser(user_collection_1.Users.deserializeUser());
226
- };
227
- // Listen to port for http/websocket
228
- ResolveIOMainServer.prototype.listen = function () {
229
- var _this = this;
230
- this._server.listen(this._port, function () {
231
- console.log('Running server on port %s', _this._port);
232
- });
233
- // On websocket connection (already verified)
234
- this._wss.on('connection', function (ws, req) {
235
- // Get user from token
236
- ws['id_user'] = req.id_user;
237
- ws['user'] = req.user;
238
- ws['id_socket'] = uuid();
239
- ws['retryCnt'] = 0;
240
- // Use for keeping connection alive (ping/pong)
241
- ws['isAlive'] = true;
242
- ws.on('pong', function () {
243
- ws['isAlive'] = true;
244
- ws['pongTime'] = new Date();
245
- ws['latency'] = moment.duration(moment(ws['pongTime']).diff(ws['pingTime'])).asMilliseconds();
246
- _this._subscriptionManager.loggedInLatency(ws);
247
- });
248
- ws['versionTimer'] = setTimeout(function () {
249
- _this.unsubscribeWS(ws);
250
- ws.terminate();
251
- }, 10000);
252
- // On data received (message)
253
- ws.on('message', function (message) { return __awaiter(_this, void 0, void 0, function () {
254
- var _a, _b, socketData, data, messageDate, messageId, type, subType, pub;
255
- var _this = this;
256
- return __generator(this, function (_c) {
257
- socketData = JSON.parse(message, common_1.dateReviver);
258
- data = common_2.deepCopy(socketData);
259
- if (data[0] === 'ping') {
260
- if (ws && ws.readyState === ws.OPEN) {
261
- ws.send('pong', function (error) {
262
- if (error) {
263
- console.log('Error on WS: ', error);
264
- _this.unsubscribeWS(ws);
265
- }
266
- });
267
- }
268
- return [2 /*return*/];
269
- }
270
- messageDate = data.shift();
271
- messageId = data.shift();
272
- type = data.shift();
273
- if (type === 'subscription') {
274
- subType = data.shift();
275
- pub = data.shift();
276
- // Subscribe
277
- if (subType === 'sub') {
278
- (_a = this._subscriptionManager).subscribe.apply(_a, [ws, messageId, pub].concat(data));
279
- }
280
- // Unsubscribe
281
- else {
282
- (_b = this._subscriptionManager).unsubscribe.apply(_b, [ws, messageId, pub].concat(data));
283
- }
284
- }
285
- else {
286
- this._msgQueue.splice(0, 0, {
287
- ws: ws,
288
- data: socketData
289
- });
290
- }
291
- return [2 /*return*/];
292
- });
293
- }); });
294
- ws.on('close', function () {
295
- _this.unsubscribeWS(ws);
296
- });
297
- });
298
- // Keep alive timer to ping/pong
299
- setInterval(function () {
300
- _this._wss.clients.forEach(function (ws) {
301
- if (ws['isAlive'] === false) {
302
- ws['retryCnt']++;
303
- if (ws['retryCnt'] >= 60) {
304
- _this.unsubscribeWS(ws);
305
- ws.terminate();
306
- }
307
- else {
308
- ws['pingTime'] = new Date();
309
- ws.ping(function () { });
310
- }
311
- }
312
- else {
313
- ws['retryCnt'] = 0;
314
- ws['isAlive'] = false;
315
- ws['pingTime'] = new Date();
316
- ws.ping(function () { });
317
- }
318
- });
319
- }, 5000);
320
- setInterval(function () { return __awaiter(_this, void 0, void 0, function () {
321
- var _loop_1, this_1, i;
322
- var _this = this;
323
- return __generator(this, function (_a) {
324
- switch (_a.label) {
325
- case 0:
326
- if (!!this._msgQueueRunning) return [3 /*break*/, 5];
327
- this._msgQueueRunning = true;
328
- _loop_1 = function (i) {
329
- var _a, _b, msg, data, ws, messageDate, messageId, type, method, serverRes, query, methodCall, supportMethod, serverRes;
330
- return __generator(this, function (_c) {
331
- switch (_c.label) {
332
- case 0:
333
- msg = this_1._msgQueue.pop();
334
- data = msg.data;
335
- ws = msg.ws;
336
- messageDate = data.shift();
337
- messageId = data.shift();
338
- type = data.shift();
339
- method = '';
340
- if (!(type === 'method')) return [3 /*break*/, 7];
341
- method = data.shift();
342
- if (method === 'setWSAppVersion') {
343
- clearTimeout(ws['versionTimer']);
344
- }
345
- if (method === 'disconnectWSCommand') {
346
- setTimeout(function () {
347
- _this.unsubscribeWS(ws);
348
- ws.terminate();
349
- }, 5000);
350
- }
351
- if (method !== 'reportBuilderGetResults' && method !== 'reportBuilderGetDistinctValue' && method !== 'reportBuilderBuildTree' && method !== 'generatePDF' && method !== 'getWOOfflineData' && method !== 'countQuery' && method !== 'countWithQuery' && method !== 'countCollectionWithQuery' && method !== 'find' && method !== 'findOne' && method !== 'findWithOptions' && method !== 'setWSAppVersion' && method !== 'getDrivers') {
352
- if (common_1.getBinarySize(JSON.stringify(data)) < 200000) {
353
- log_collection_1.Logs.create({
354
- _id: mongoose_1.Types.ObjectId().toHexString(),
355
- date: new Date(),
356
- type: 'client-request',
357
- title: 'Client Request - Method',
358
- message: 'User: ' + ws['user'] + ', Type: ' + type + ', MessageId: ' + messageId + ', Method: ' + method,
359
- payload: JSON.stringify(data),
360
- method: method,
361
- user: ws['user'],
362
- messageId: messageId
363
- });
364
- }
365
- else {
366
- log_collection_1.Logs.create({
367
- _id: mongoose_1.Types.ObjectId().toHexString(),
368
- date: new Date(),
369
- type: 'client-request',
370
- title: 'Client Request - Method',
371
- message: 'User: ' + ws['user'] + ', Type: ' + type + ', MessageId: ' + messageId + ', Method: ' + method,
372
- payload: 'Too Big',
373
- method: method,
374
- user: ws['user'],
375
- messageId: messageId
376
- });
377
- }
378
- }
379
- serverRes = {
380
- messageId: messageId,
381
- hasError: false,
382
- data: 'ACK'
383
- };
384
- if (ws && ws.readyState === ws.OPEN) {
385
- ws.send(JSON.stringify(serverRes), function (error) {
386
- if (error) {
387
- console.log('Error on WS: ', error);
388
- _this.unsubscribeWS(ws);
389
- }
390
- });
391
- }
392
- if (!this_1._methodManager._methods[method]) return [3 /*break*/, 5];
393
- query = { $and: [
394
- { id_user: ws['id_user'] },
395
- { message_id: messageId },
396
- { date: messageDate }
397
- ] };
398
- if (method !== 'updateDocumentOffline' && method !== 'updateDocumentPropsOffline') {
399
- query.$and.push({ method: method });
400
- }
401
- else {
402
- if (method === 'updateDocumentOffline') {
403
- query.$and.push({
404
- $or: [
405
- { method: method },
406
- { method: 'updateDocument' }
407
- ]
408
- });
409
- }
410
- else if (method === 'updateDocumentPropsOffline') {
411
- query.$and.push({
412
- $or: [
413
- { method: method },
414
- { method: 'updateDocumentProps' }
415
- ]
416
- });
417
- }
418
- }
419
- return [4 /*yield*/, method_call_collection_1.MethodCalls.findOne(query).exec()];
420
- case 1:
421
- methodCall = _c.sent();
422
- if (!!methodCall) return [3 /*break*/, 3];
423
- return [4 /*yield*/, method_call_collection_1.MethodCalls.create({
424
- _id: mongoose_1.Types.ObjectId().toHexString(),
425
- __v: 0,
426
- id_user: ws['id_user'],
427
- message_id: messageId,
428
- method: method,
429
- date: messageDate
430
- })];
431
- case 2:
432
- _c.sent();
433
- if (this_1._methodManager._methods[method]) {
434
- if (this_1._methodManager._methods[method].skipQueue) {
435
- (_a = this_1._methodManager).callMethod.apply(_a, [ws, messageDate, messageId, method].concat(data));
436
- }
437
- else {
438
- this_1._queueManager.addMethodToQueue(ws['id_socket'], ws['id_user'], ws['user'], messageDate, messageId, method, data);
439
- }
440
- }
441
- else {
442
- console.log('Could not find method: ' + method);
443
- }
444
- return [3 /*break*/, 4];
445
- case 3:
446
- method_response_collection_1.MethodResponses.findOne({ $and: [
447
- { id_user: ws['id_user'] },
448
- { message_id: messageId },
449
- { method: method },
450
- { date: messageDate }
451
- ] }).exec(function (err, res) {
452
- if (res) {
453
- if (ws && ws.readyState === ws.OPEN) {
454
- ws.send(JSON.stringify(res.response), function (error) {
455
- if (error) {
456
- console.log('Error on WS: ', error);
457
- _this.unsubscribeWS(ws);
458
- }
459
- });
460
- }
461
- }
462
- });
463
- _c.label = 4;
464
- case 4: return [3 /*break*/, 6];
465
- case 5:
466
- console.log('Could not find method: ' + method);
467
- _c.label = 6;
468
- case 6: return [3 /*break*/, 8];
469
- case 7:
470
- if (type === 'methodRetry') {
471
- method = data.shift();
472
- if (method !== 'reportBuilderGetResults' && method !== 'reportBuilderGetDistinctValue' && method !== 'reportBuilderBuildTree' && method !== 'generatePDF' && method !== 'getWOOfflineData' && method !== 'countQuery' && method !== 'countWithQuery' && method !== 'countCollectionWithQuery' && method !== 'find' && method !== 'findOne' && method !== 'findWithOptions' && method !== 'setWSAppVersion' && method !== 'getDrivers') {
473
- if (common_1.getBinarySize(JSON.stringify(data)) < 200000) {
474
- log_collection_1.Logs.create({
475
- _id: mongoose_1.Types.ObjectId().toHexString(),
476
- date: new Date(),
477
- type: 'client-request',
478
- title: 'Client Request - Method Retry',
479
- message: 'User: ' + ws['user'] + ', Type: ' + type + ', MessageId: ' + messageId + ', Method: ' + method,
480
- payload: JSON.stringify(data),
481
- method: method,
482
- user: ws['user'],
483
- messageId: messageId
484
- });
485
- }
486
- else {
487
- log_collection_1.Logs.create({
488
- _id: mongoose_1.Types.ObjectId().toHexString(),
489
- date: new Date(),
490
- type: 'client-request',
491
- title: 'Client Request - Method Retry',
492
- message: 'User: ' + ws['user'] + ', Type: ' + type + ', MessageId: ' + messageId + ', Method: ' + method,
493
- payload: 'Too Big',
494
- method: method,
495
- user: ws['user'],
496
- messageId: messageId
497
- });
498
- }
499
- }
500
- method_call_collection_1.MethodCalls.findOne({ $and: [
501
- { id_user: ws['id_user'] },
502
- { message_id: messageId },
503
- { method: method },
504
- { date: messageDate }
505
- ] }).exec(function (err, res) {
506
- if (res) {
507
- var serverRes = {
508
- messageId: messageId,
509
- hasError: false,
510
- data: 'ACK'
511
- };
512
- if (ws && ws.readyState === ws.OPEN) {
513
- ws.send(JSON.stringify(serverRes), function (error) {
514
- if (error) {
515
- console.log('Error on WS: ', error);
516
- _this.unsubscribeWS(ws);
517
- }
518
- });
519
- }
520
- }
521
- else {
522
- var serverRes = {
523
- messageId: messageId,
524
- hasError: false,
525
- data: 'NACK'
526
- };
527
- if (ws && ws.readyState === ws.OPEN) {
528
- ws.send(JSON.stringify(serverRes), function (error) {
529
- if (error) {
530
- console.log('Error on WS: ', error);
531
- _this.unsubscribeWS(ws);
532
- }
533
- });
534
- }
535
- }
536
- });
537
- }
538
- else if (type === 'methodResponse') {
539
- method = data.shift();
540
- method_response_collection_1.MethodResponses.findOne({ $and: [
541
- { id_user: ws['id_user'] },
542
- { message_id: messageId },
543
- { method: method },
544
- { date: messageDate }
545
- ] }).exec(function (err, res) {
546
- if (res) {
547
- if (ws && ws.readyState === ws.OPEN) {
548
- ws.send(JSON.stringify(res.response), function (error) {
549
- if (error) {
550
- console.log('Error on WS: ', error);
551
- _this.unsubscribeWS(ws);
552
- }
553
- });
554
- }
555
- }
556
- });
557
- }
558
- else if (type === 'support') {
559
- supportMethod = data.shift();
560
- if (common_1.getBinarySize(JSON.stringify(data)) < 200000) {
561
- log_collection_1.Logs.create({
562
- _id: mongoose_1.Types.ObjectId().toHexString(),
563
- date: new Date(),
564
- type: 'client-request',
565
- title: 'Client Request - Support',
566
- message: 'User: ' + ws['user'] + ', Type: ' + type + ', MessageId: ' + messageId + ', Support Method: ' + supportMethod,
567
- payload: JSON.stringify(data),
568
- method: supportMethod,
569
- user: ws['user'],
570
- messageId: messageId
571
- });
572
- }
573
- else {
574
- log_collection_1.Logs.create({
575
- _id: mongoose_1.Types.ObjectId().toHexString(),
576
- date: new Date(),
577
- type: 'client-request',
578
- title: 'Client Request - Support',
579
- message: 'User: ' + ws['user'] + ', Type: ' + type + ', MessageId: ' + messageId + ', Support Method: ' + supportMethod,
580
- payload: 'Too Big',
581
- method: supportMethod,
582
- user: ws['user'],
583
- messageId: messageId
584
- });
585
- }
586
- serverRes = {
587
- messageId: messageId,
588
- hasError: false,
589
- data: 'ACK'
590
- };
591
- if (ws && ws.readyState === ws.OPEN) {
592
- ws.send(JSON.stringify(serverRes), function (error) {
593
- if (error) {
594
- console.log('Error on WS: ', error);
595
- _this.unsubscribeWS(ws);
596
- }
597
- });
598
- }
599
- if (this_1._supportManager._supportMethods[supportMethod]) {
600
- (_b = this_1._supportManager).callSupportMethod.apply(_b, [ws, messageId, supportMethod].concat(data));
601
- }
602
- else {
603
- console.log('Could not find support method: ' + supportMethod);
604
- }
605
- }
606
- _c.label = 8;
607
- case 8: return [2 /*return*/];
608
- }
609
- });
610
- };
611
- this_1 = this;
612
- i = this._msgQueue.length - 1;
613
- _a.label = 1;
614
- case 1:
615
- if (!(i >= 0)) return [3 /*break*/, 4];
616
- return [5 /*yield**/, _loop_1(i)];
617
- case 2:
618
- _a.sent();
619
- _a.label = 3;
620
- case 3:
621
- i--;
622
- return [3 /*break*/, 1];
623
- case 4:
624
- this._msgQueueRunning = false;
625
- _a.label = 5;
626
- case 5: return [2 /*return*/];
627
- }
628
- });
629
- }); }, 25);
630
- };
631
- ResolveIOMainServer.prototype.unsubscribeWS = function (ws) {
632
- this._subscriptionManager.unsubscribeAll(ws);
633
- };
634
- return ResolveIOMainServer;
635
- }());
636
- exports.default = ResolveIOMainServer;
@@ -1,2 +0,0 @@
1
- import { SupportManager } from '../managers/support.manager';
2
- export declare function loadAWSMethods(supportManager: SupportManager): void;