@steedos/process 2.7.27-beta.6 → 3.0.0-beta.100

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.
@@ -9,12 +9,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
14
  function verb(n) { return function (v) { return step([n, v]); }; }
15
15
  function step(op) {
16
16
  if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
18
  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;
19
19
  if (y = 0, t) op = [op[0] & 2, t.value];
20
20
  switch (op[0]) {
@@ -35,13 +35,22 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
36
  }
37
37
  };
38
- exports.__esModule = true;
38
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
39
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40
+ if (ar || !(i in from)) {
41
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
42
+ ar[i] = from[i];
43
+ }
44
+ }
45
+ return to.concat(ar || Array.prototype.slice.call(from));
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
39
48
  exports.processInstanceWorkitemRemovebyInstance = exports.processInstanceWorkitemReassign = exports.processInstanceWorkitemReject = exports.processInstanceWorkitemApprove = exports.getProcessInstanceWorkitem = exports.getReocrdProcessInstance = exports.recordSubmit = exports.getObjectProcessDefinition = void 0;
40
49
  var platform_action_manager_1 = require("./platform_action_manager");
41
50
  var notifications_1 = require("./notifications");
42
51
  var objectql_1 = require("@steedos/objectql");
43
- var objectql = require('@steedos/objectql');
44
- var Fiber = require('fibers');
52
+ var handlers_1 = require("./handlers");
53
+ var objectql = require("@steedos/objectql");
45
54
  var _ = require("underscore");
46
55
  var lockObjectRecord = function (objectName, reocrdId) { return __awaiter(void 0, void 0, void 0, function () {
47
56
  return __generator(this, function (_a) {
@@ -56,7 +65,9 @@ var lockObjectRecord = function (objectName, reocrdId) { return __awaiter(void 0
56
65
  var unlockObjectRecord = function (objectName, reocrdId) { return __awaiter(void 0, void 0, void 0, function () {
57
66
  return __generator(this, function (_a) {
58
67
  switch (_a.label) {
59
- case 0: return [4, objectql.getObject(objectName).directUpdate(reocrdId, { locked: false })];
68
+ case 0: return [4, objectql
69
+ .getObject(objectName)
70
+ .directUpdate(reocrdId, { locked: false })];
60
71
  case 1:
61
72
  _a.sent();
62
73
  return [2];
@@ -64,18 +75,30 @@ var unlockObjectRecord = function (objectName, reocrdId) { return __awaiter(void
64
75
  });
65
76
  }); };
66
77
  var getProcessNodeApprover = function (instanceId, processNode, userSession, chooseApprover, isBack, record) { return __awaiter(void 0, void 0, void 0, function () {
67
- var nodeApprover, processInstanceNodes, lastProcessInstanceNode, nodeHistroy, approver, _i, _a, roleId, dbRoles, role, submitted_by_1, spaceId_1, processInstance, assigned_approver_flow_role_ids_1, flowRoleKeys, _b, flowRoleKeys_1, flowRoleKey, dbFlowRole, dbFlowRoles, handlers, processInstance;
78
+ var nodeApprover, processInstanceNodes, lastProcessInstanceNode, nodeHistroy, approver, _i, _a, roleId, dbRoles, role, submitted_by, spaceId, processInstance, assigned_approver_flow_role_ids, flowRoleKeys, _b, flowRoleKeys_1, flowRoleKey, dbFlowRole, dbFlowRoles, handlers, processInstance;
68
79
  return __generator(this, function (_c) {
69
80
  switch (_c.label) {
70
81
  case 0:
71
82
  nodeApprover = [];
72
83
  if (!isBack) return [3, 4];
73
- return [4, objectql.getObject("process_instance_node").find({ filters: [['process_instance', '=', instanceId], ['process_node', '=', processNode._id]], sort: "created desc" })];
84
+ return [4, objectql
85
+ .getObject("process_instance_node")
86
+ .find({
87
+ filters: [
88
+ ["process_instance", "=", instanceId],
89
+ ["process_node", "=", processNode._id],
90
+ ],
91
+ sort: "created desc",
92
+ })];
74
93
  case 1:
75
94
  processInstanceNodes = _c.sent();
76
95
  if (!!_.isEmpty(processInstanceNodes)) return [3, 3];
77
96
  lastProcessInstanceNode = processInstanceNodes[0];
78
- return [4, objectql.getObject("process_instance_history").find({ filters: ['process_instance_node', '=', lastProcessInstanceNode._id] })];
97
+ return [4, objectql
98
+ .getObject("process_instance_history")
99
+ .find({
100
+ filters: ["process_instance_node", "=", lastProcessInstanceNode._id],
101
+ })];
79
102
  case 2:
80
103
  nodeHistroy = _c.sent();
81
104
  _.each(nodeHistroy, function (item) {
@@ -85,7 +108,7 @@ var getProcessNodeApprover = function (instanceId, processNode, userSession, cho
85
108
  case 3: return [3, 27];
86
109
  case 4:
87
110
  approver = processNode.approver;
88
- if (!(approver === 'auto_assign')) return [3, 26];
111
+ if (!(approver === "auto_assign")) return [3, 26];
89
112
  if (!_.isEmpty(processNode.assigned_approver_users)) {
90
113
  nodeApprover = nodeApprover.concat(processNode.assigned_approver_users);
91
114
  }
@@ -95,13 +118,15 @@ var getProcessNodeApprover = function (instanceId, processNode, userSession, cho
95
118
  case 5:
96
119
  if (!(_i < _a.length)) return [3, 10];
97
120
  roleId = _a[_i];
98
- return [4, objectql.getObject("roles").find({ filters: ['api_name', '=', roleId] })];
121
+ return [4, objectql
122
+ .getObject("roles")
123
+ .find({ filters: ["api_name", "=", roleId] })];
99
124
  case 6:
100
125
  dbRoles = _c.sent();
101
126
  if (!(dbRoles && dbRoles.length > 0 && !_.isEmpty(dbRoles[0].users))) return [3, 7];
102
127
  nodeApprover = nodeApprover.concat(dbRoles[0].users);
103
128
  return [3, 9];
104
- case 7: return [4, objectql.getObject('roles').findOne(roleId)];
129
+ case 7: return [4, objectql.getObject("roles").findOne(roleId)];
105
130
  case 8:
106
131
  role = _c.sent();
107
132
  if (role && !_.isEmpty(role.users)) {
@@ -113,16 +138,18 @@ var getProcessNodeApprover = function (instanceId, processNode, userSession, cho
113
138
  return [3, 5];
114
139
  case 10:
115
140
  if (!!_.isEmpty(processNode.assigned_approver_flow_roles)) return [3, 21];
116
- submitted_by_1 = userSession.userId;
117
- spaceId_1 = userSession.spaceId;
141
+ submitted_by = userSession.userId;
142
+ spaceId = userSession.spaceId;
118
143
  if (!instanceId) return [3, 12];
119
- return [4, objectql.getObject("process_instance").findOne(instanceId)];
144
+ return [4, objectql
145
+ .getObject("process_instance")
146
+ .findOne(instanceId)];
120
147
  case 11:
121
148
  processInstance = _c.sent();
122
- submitted_by_1 = processInstance.submitted_by;
149
+ submitted_by = processInstance.submitted_by;
123
150
  _c.label = 12;
124
151
  case 12:
125
- assigned_approver_flow_role_ids_1 = [];
152
+ assigned_approver_flow_role_ids = [];
126
153
  flowRoleKeys = processNode.assigned_approver_flow_roles;
127
154
  _b = 0, flowRoleKeys_1 = flowRoleKeys;
128
155
  _c.label = 13;
@@ -130,33 +157,27 @@ var getProcessNodeApprover = function (instanceId, processNode, userSession, cho
130
157
  if (!(_b < flowRoleKeys_1.length)) return [3, 19];
131
158
  flowRoleKey = flowRoleKeys_1[_b];
132
159
  dbFlowRole = void 0;
133
- return [4, objectql.getObject("flow_roles").find({ filters: ['api_name', '=', flowRoleKey] })];
160
+ return [4, objectql
161
+ .getObject("flow_roles")
162
+ .find({ filters: ["api_name", "=", flowRoleKey] })];
134
163
  case 14:
135
164
  dbFlowRoles = _c.sent();
136
165
  if (!(dbFlowRoles && dbFlowRoles.length == 1)) return [3, 15];
137
166
  dbFlowRole = dbFlowRoles[0];
138
167
  return [3, 17];
139
- case 15: return [4, objectql.getObject("flow_roles").findOne(flowRoleKey)];
168
+ case 15: return [4, objectql
169
+ .getObject("flow_roles")
170
+ .findOne(flowRoleKey)];
140
171
  case 16:
141
172
  dbFlowRole = _c.sent();
142
173
  _c.label = 17;
143
174
  case 17:
144
- assigned_approver_flow_role_ids_1.push(dbFlowRole._id);
175
+ assigned_approver_flow_role_ids.push(dbFlowRole._id);
145
176
  _c.label = 18;
146
177
  case 18:
147
178
  _b++;
148
179
  return [3, 13];
149
- case 19: return [4, new Promise(function (resolve, reject) {
150
- Fiber(function () {
151
- try {
152
- var handlers_1 = getHandlersManager.getHandlersByUserAndRoles(submitted_by_1, assigned_approver_flow_role_ids_1, spaceId_1);
153
- resolve(handlers_1);
154
- }
155
- catch (error) {
156
- reject(error);
157
- }
158
- }).run();
159
- })];
180
+ case 19: return [4, (0, handlers_1.getHandlersByUserAndRoles)(submitted_by, assigned_approver_flow_role_ids, spaceId)];
160
181
  case 20:
161
182
  handlers = _c.sent();
162
183
  nodeApprover = nodeApprover.concat(handlers);
@@ -164,10 +185,14 @@ var getProcessNodeApprover = function (instanceId, processNode, userSession, cho
164
185
  case 21:
165
186
  if (!!_.isEmpty(processNode.assigned_approver_user_field)) return [3, 25];
166
187
  if (!instanceId) return [3, 24];
167
- return [4, objectql.getObject("process_instance").findOne(instanceId)];
188
+ return [4, objectql
189
+ .getObject("process_instance")
190
+ .findOne(instanceId)];
168
191
  case 22:
169
192
  processInstance = _c.sent();
170
- return [4, objectql.getObject(processInstance.target_object.o).findOne(processInstance.target_object.ids[0])];
193
+ return [4, objectql
194
+ .getObject(processInstance.target_object.o)
195
+ .findOne(processInstance.target_object.ids[0])];
171
196
  case 23:
172
197
  record = _c.sent();
173
198
  _c.label = 24;
@@ -186,7 +211,7 @@ var getProcessNodeApprover = function (instanceId, processNode, userSession, cho
186
211
  _c.label = 25;
187
212
  case 25: return [3, 27];
188
213
  case 26:
189
- if (approver === 'submitter_choose') {
214
+ if (approver === "submitter_choose") {
190
215
  if (chooseApprover) {
191
216
  if (_.isString(chooseApprover)) {
192
217
  return [2, [chooseApprover]];
@@ -195,11 +220,11 @@ var getProcessNodeApprover = function (instanceId, processNode, userSession, cho
195
220
  return [2, _.uniq(_.compact(chooseApprover))];
196
221
  }
197
222
  else {
198
- throw new objectql_1.SteedosError('process_approval_error_invalidChooseApprover');
223
+ throw new objectql_1.SteedosError("process_approval_error_invalidChooseApprover");
199
224
  }
200
225
  }
201
226
  else {
202
- throw new objectql_1.SteedosError('process_approval_error_needToChooseApprover');
227
+ throw new objectql_1.SteedosError("process_approval_error_needToChooseApprover");
203
228
  }
204
229
  }
205
230
  _c.label = 27;
@@ -210,7 +235,12 @@ var getProcessNodeApprover = function (instanceId, processNode, userSession, cho
210
235
  var getProcessNodes = function (processDefinitionId, spaceId) { return __awaiter(void 0, void 0, void 0, function () {
211
236
  return __generator(this, function (_a) {
212
237
  switch (_a.label) {
213
- case 0: return [4, objectql.getObject('process_node').find({ filters: [['process_definition', '=', processDefinitionId]], sort: "order asc" })];
238
+ case 0: return [4, objectql
239
+ .getObject("process_node")
240
+ .find({
241
+ filters: [["process_definition", "=", processDefinitionId]],
242
+ sort: "order asc",
243
+ })];
214
244
  case 1: return [2, _a.sent()];
215
245
  }
216
246
  });
@@ -219,19 +249,25 @@ var addInstanceHistory = function (spaceId, instanceId, status, comment, options
219
249
  var instance, name, node, instanceHistory;
220
250
  return __generator(this, function (_a) {
221
251
  switch (_a.label) {
222
- case 0: return [4, objectql.getObject("process_instance").findOne(instanceId)];
252
+ case 0: return [4, objectql
253
+ .getObject("process_instance")
254
+ .findOne(instanceId)];
223
255
  case 1:
224
256
  instance = _a.sent();
225
- name = '';
257
+ name = "";
226
258
  if (!options.nodeId) return [3, 3];
227
- return [4, objectql.getObject("process_node").findOne(options.nodeId)];
259
+ return [4, objectql
260
+ .getObject("process_node")
261
+ .findOne(options.nodeId)];
228
262
  case 2:
229
263
  node = _a.sent();
230
264
  if (node) {
231
265
  name = node.label;
232
266
  }
233
267
  _a.label = 3;
234
- case 3: return [4, objectql.getObject("process_instance_history").insert({
268
+ case 3: return [4, objectql
269
+ .getObject("process_instance_history")
270
+ .insert({
235
271
  name: name,
236
272
  process_instance: instanceId,
237
273
  target_object: instance.target_object,
@@ -242,18 +278,22 @@ var addInstanceHistory = function (spaceId, instanceId, status, comment, options
242
278
  step_node: options.nodeId,
243
279
  process_instance_node: options.instanceNodeId,
244
280
  space: spaceId,
245
- created_by: userSession.userId
281
+ created_by: userSession.userId,
246
282
  })];
247
283
  case 4:
248
284
  instanceHistory = _a.sent();
249
- if (!(status === 'approved' || status === 'rejected')) return [3, 6];
285
+ if (!(status === "approved" || status === "rejected")) return [3, 6];
250
286
  return [4, handleProcessInstance(instanceHistory.process_instance, status, userSession)];
251
287
  case 5:
252
288
  _a.sent();
253
289
  _a.label = 6;
254
290
  case 6:
255
- if (!(status === 'pending')) return [3, 8];
256
- return [4, (0, notifications_1.sendNotifications)(instance.created_by, options.actor, { instanceHistory: instanceHistory, status: status, instance: instance })];
291
+ if (!(status === "pending")) return [3, 8];
292
+ return [4, (0, notifications_1.sendNotifications)(instance.created_by, options.actor, {
293
+ instanceHistory: instanceHistory,
294
+ status: status,
295
+ instance: instance,
296
+ })];
257
297
  case 7:
258
298
  _a.sent();
259
299
  _a.label = 8;
@@ -268,13 +308,15 @@ var addInstanceNode = function (instanceId, node, userSession, nodeApprover) { r
268
308
  case 0:
269
309
  nodeId = node._id;
270
310
  nodeName = node.label;
271
- return [4, objectql.getObject("process_instance_node").insert({
311
+ return [4, objectql
312
+ .getObject("process_instance_node")
313
+ .insert({
272
314
  process_instance: instanceId,
273
315
  process_node: nodeId,
274
316
  process_node_name: nodeName,
275
- node_status: 'pending',
317
+ node_status: "pending",
276
318
  space: userSession.spaceId,
277
- created_by: userSession.userId
319
+ created_by: userSession.userId,
278
320
  })];
279
321
  case 1:
280
322
  instanceNode = _a.sent();
@@ -283,7 +325,13 @@ var addInstanceNode = function (instanceId, node, userSession, nodeApprover) { r
283
325
  case 2:
284
326
  if (!(_i < nodeApprover_1.length)) return [3, 5];
285
327
  actor = nodeApprover_1[_i];
286
- return [4, addInstanceHistory(userSession.spaceId, instanceId, 'pending', null, { nodeId: nodeId, actor: actor, originalActor: actor, submitted_by: userSession.userId, instanceNodeId: instanceNode._id }, userSession)];
328
+ return [4, addInstanceHistory(userSession.spaceId, instanceId, "pending", null, {
329
+ nodeId: nodeId,
330
+ actor: actor,
331
+ originalActor: actor,
332
+ submitted_by: userSession.userId,
333
+ instanceNodeId: instanceNode._id,
334
+ }, userSession)];
287
335
  case 3:
288
336
  _a.sent();
289
337
  _a.label = 4;
@@ -294,10 +342,14 @@ var addInstanceNode = function (instanceId, node, userSession, nodeApprover) { r
294
342
  }
295
343
  });
296
344
  }); };
297
- var getNextNode = function (nodes, index, objectName, recordId, userSession) {
298
- if (index === void 0) { index = 0; }
299
- return __awaiter(void 0, void 0, void 0, function () {
345
+ var getNextNode = function (nodes_1) {
346
+ var args_1 = [];
347
+ for (var _i = 1; _i < arguments.length; _i++) {
348
+ args_1[_i - 1] = arguments[_i];
349
+ }
350
+ return __awaiter(void 0, __spreadArray([nodes_1], args_1, true), void 0, function (nodes, index, objectName, recordId, userSession) {
300
351
  var node, canEntry;
352
+ if (index === void 0) { index = 0; }
301
353
  return __generator(this, function (_a) {
302
354
  switch (_a.label) {
303
355
  case 0:
@@ -311,14 +363,14 @@ var getNextNode = function (nodes, index, objectName, recordId, userSession) {
311
363
  if (!canEntry) return [3, 3];
312
364
  return [2, node];
313
365
  case 3:
314
- if (!(node.if_criteria_not_met === 'skip')) return [3, 5];
366
+ if (!(node.if_criteria_not_met === "skip")) return [3, 5];
315
367
  return [4, getNextNode(nodes, index + 1, objectName, recordId, userSession)];
316
368
  case 4: return [2, _a.sent()];
317
369
  case 5:
318
- if (node.if_criteria_not_met === 'reject') {
370
+ if (node.if_criteria_not_met === "reject") {
319
371
  return [2, { to_final_rejection: true }];
320
372
  }
321
- else if (node.if_criteria_not_met === 'approve') {
373
+ else if (node.if_criteria_not_met === "approve") {
322
374
  return [2, { to_final_approval: true }];
323
375
  }
324
376
  _a.label = 6;
@@ -344,16 +396,26 @@ var getPreviousNode = function (instanceId, currentNode, userSession) { return _
344
396
  var previousInstanceNodes, previousInstanceNode, previousNode;
345
397
  return __generator(this, function (_a) {
346
398
  switch (_a.label) {
347
- case 0: return [4, objectql.getObject("process_instance_node").find({ filters: [['process_instance', '=', instanceId], ['process_node', '!=', currentNode._id]], sort: 'created desc' })];
399
+ case 0: return [4, objectql
400
+ .getObject("process_instance_node")
401
+ .find({
402
+ filters: [
403
+ ["process_instance", "=", instanceId],
404
+ ["process_node", "!=", currentNode._id],
405
+ ],
406
+ sort: "created desc",
407
+ })];
348
408
  case 1:
349
409
  previousInstanceNodes = _a.sent();
350
410
  if (!!_.isEmpty(previousInstanceNodes)) return [3, 3];
351
411
  previousInstanceNode = previousInstanceNodes[0];
352
- return [4, objectql.getObject("process_node").findOne(previousInstanceNode.process_node)];
412
+ return [4, objectql
413
+ .getObject("process_node")
414
+ .findOne(previousInstanceNode.process_node)];
353
415
  case 2:
354
416
  previousNode = _a.sent();
355
417
  return [2, previousNode];
356
- case 3: throw new objectql_1.SteedosError('not find previous node');
418
+ case 3: throw new objectql_1.SteedosError("not find previous node");
357
419
  }
358
420
  });
359
421
  }); };
@@ -363,7 +425,14 @@ var getObjectProcessDefinition = function (objectName, recordId, userSession) {
363
425
  switch (_a.label) {
364
426
  case 0:
365
427
  spaceId = userSession.spaceId;
366
- return [4, objectql.getObject('process_definition').find({ filters: [['object_name', '=', objectName], ['space', '=', spaceId], ['active', '=', true]], sort: "order asc" })];
428
+ return [4, objectql.getObject("process_definition").find({
429
+ filters: [
430
+ ["object_name", "=", objectName],
431
+ ["space", "=", spaceId],
432
+ ["active", "=", true],
433
+ ],
434
+ sort: "order asc",
435
+ })];
367
436
  case 1:
368
437
  processes = _a.sent();
369
438
  if (processes.length < 1) {
@@ -395,11 +464,19 @@ var recordSubmit = function (processDefinitionId, objectName, recordId, userSess
395
464
  var pendingInstanceCount, nodes, nextNode, to_final_rejection, to_final_approval, approver, record, instance, options, options;
396
465
  return __generator(this, function (_a) {
397
466
  switch (_a.label) {
398
- case 0: return [4, objectql.getObject("process_instance").count({ filters: [['target_object.o', '=', objectName], ['target_object.ids', '=', recordId], ['status', '=', 'pending']] })];
467
+ case 0: return [4, objectql
468
+ .getObject("process_instance")
469
+ .count({
470
+ filters: [
471
+ ["target_object.o", "=", objectName],
472
+ ["target_object.ids", "=", recordId],
473
+ ["status", "=", "pending"],
474
+ ],
475
+ })];
399
476
  case 1:
400
477
  pendingInstanceCount = _a.sent();
401
478
  if (pendingInstanceCount > 0) {
402
- throw new objectql_1.SteedosError('process_approval_error_processInstancePending');
479
+ throw new objectql_1.SteedosError("process_approval_error_processInstancePending");
403
480
  }
404
481
  return [4, getProcessNodes(processDefinitionId, userSession.spaceId)];
405
482
  case 2:
@@ -427,20 +504,20 @@ var recordSubmit = function (processDefinitionId, objectName, recordId, userSess
427
504
  case 6: return [4, objectql.getObject("process_instance").insert({
428
505
  process_definition: processDefinitionId,
429
506
  target_object: {
430
- "o": objectName,
431
- "ids": [recordId]
507
+ o: objectName,
508
+ ids: [recordId],
432
509
  },
433
510
  status: "pending",
434
511
  space: userSession.spaceId,
435
512
  submitted_by: userSession.userId,
436
- created_by: userSession.userId
513
+ created_by: userSession.userId,
437
514
  })];
438
515
  case 7:
439
516
  instance = _a.sent();
440
517
  return [4, lockObjectRecord(objectName, recordId)];
441
518
  case 8:
442
519
  _a.sent();
443
- return [4, (0, platform_action_manager_1.runProcessAction)(processDefinitionId, 'initial_submission', recordId, userSession)];
520
+ return [4, (0, platform_action_manager_1.runProcessAction)(processDefinitionId, "initial_submission", recordId, userSession)];
444
521
  case 9:
445
522
  _a.sent();
446
523
  return [4, addInstanceHistory(userSession.spaceId, instance._id, "started", comment, { actor: userSession.userId }, userSession)];
@@ -474,7 +551,14 @@ var getReocrdProcessInstance = function (objectName, recordId, status, userSessi
474
551
  switch (_a.label) {
475
552
  case 0:
476
553
  spaceId = userSession.spaceId;
477
- return [4, objectql.getObject("process_instance").find({ filters: [['space', '=', spaceId], ['status', '=', status], ['target_object.o', '=', objectName], ['target_object.ids', '=', recordId]] })];
554
+ return [4, objectql.getObject("process_instance").find({
555
+ filters: [
556
+ ["space", "=", spaceId],
557
+ ["status", "=", status],
558
+ ["target_object.o", "=", objectName],
559
+ ["target_object.ids", "=", recordId],
560
+ ],
561
+ })];
478
562
  case 1: return [2, _a.sent()];
479
563
  }
480
564
  });
@@ -487,7 +571,14 @@ var getProcessInstanceWorkitem = function (instanceHistoryId, userSession) { ret
487
571
  case 0:
488
572
  spaceId = userSession.spaceId;
489
573
  userId = userSession.userId;
490
- return [4, objectql.getObject("process_instance_history").find({ filters: [['_id', '=', instanceHistoryId], ['step_status', '=', 'pending'], ['actor', '=', userId], ['space', '=', spaceId]] })];
574
+ return [4, objectql.getObject("process_instance_history").find({
575
+ filters: [
576
+ ["_id", "=", instanceHistoryId],
577
+ ["step_status", "=", "pending"],
578
+ ["actor", "=", userId],
579
+ ["space", "=", spaceId],
580
+ ],
581
+ })];
491
582
  case 1:
492
583
  workitme = _a.sent();
493
584
  if (workitme.length > 0) {
@@ -499,25 +590,25 @@ var getProcessInstanceWorkitem = function (instanceHistoryId, userSession) { ret
499
590
  }); };
500
591
  exports.getProcessInstanceWorkitem = getProcessInstanceWorkitem;
501
592
  var getProcessActionWhenByStatus = function (processStatus) {
502
- var when = '';
503
- if (processStatus === 'approved') {
504
- when = 'final_approval';
593
+ var when = "";
594
+ if (processStatus === "approved") {
595
+ when = "final_approval";
505
596
  }
506
- else if (processStatus === 'rejected') {
507
- when = 'final_rejection';
597
+ else if (processStatus === "rejected") {
598
+ when = "final_rejection";
508
599
  }
509
- else if (processStatus === 'removed') {
510
- when = 'recall';
600
+ else if (processStatus === "removed") {
601
+ when = "recall";
511
602
  }
512
603
  return when;
513
604
  };
514
605
  var getProcessNodeActionWhenByStatus = function (processStatus) {
515
- var when = '';
516
- if (processStatus === 'approved') {
517
- when = 'approval';
606
+ var when = "";
607
+ if (processStatus === "approved") {
608
+ when = "approval";
518
609
  }
519
- else if (processStatus === 'rejected') {
520
- when = 'rejection';
610
+ else if (processStatus === "rejected") {
611
+ when = "rejection";
521
612
  }
522
613
  return when;
523
614
  };
@@ -525,23 +616,38 @@ var handleProcessInstance = function (instanceId, processStatus, userSession) {
525
616
  var otherPendingInstanceNodeCount, pInstance, process_1, when;
526
617
  return __generator(this, function (_a) {
527
618
  switch (_a.label) {
528
- case 0: return [4, objectql.getObject("process_instance_node").count({ filters: [['process_instance', '=', instanceId], ['node_status', '=', 'pending']] })];
619
+ case 0: return [4, objectql
620
+ .getObject("process_instance_node")
621
+ .count({
622
+ filters: [
623
+ ["process_instance", "=", instanceId],
624
+ ["node_status", "=", "pending"],
625
+ ],
626
+ })];
529
627
  case 1:
530
628
  otherPendingInstanceNodeCount = _a.sent();
531
629
  if (!(otherPendingInstanceNodeCount === 0)) return [3, 18];
532
- return [4, objectql.getObject("process_instance").update(instanceId, { status: processStatus, completed_date: new Date(), last_actor: userSession.userId })];
630
+ return [4, objectql
631
+ .getObject("process_instance")
632
+ .update(instanceId, {
633
+ status: processStatus,
634
+ completed_date: new Date(),
635
+ last_actor: userSession.userId,
636
+ })];
533
637
  case 2:
534
638
  pInstance = _a.sent();
535
- if (!(processStatus === 'removed')) return [3, 4];
639
+ if (!(processStatus === "removed")) return [3, 4];
536
640
  return [4, unlockObjectRecord(pInstance.target_object.o, pInstance.target_object.ids[0])];
537
641
  case 3:
538
642
  _a.sent();
539
643
  return [3, 14];
540
- case 4: return [4, objectql.getObject("process_definition").findOne(pInstance.process_definition)];
644
+ case 4: return [4, objectql
645
+ .getObject("process_definition")
646
+ .findOne(pInstance.process_definition)];
541
647
  case 5:
542
648
  process_1 = _a.sent();
543
- if (!(processStatus === 'approved')) return [3, 10];
544
- if (!(process_1.final_approval_record_lock === 'unlock')) return [3, 7];
649
+ if (!(processStatus === "approved")) return [3, 10];
650
+ if (!(process_1.final_approval_record_lock === "unlock")) return [3, 7];
545
651
  return [4, unlockObjectRecord(pInstance.target_object.o, pInstance.target_object.ids[0])];
546
652
  case 6:
547
653
  _a.sent();
@@ -552,8 +658,8 @@ var handleProcessInstance = function (instanceId, processStatus, userSession) {
552
658
  _a.label = 9;
553
659
  case 9: return [3, 14];
554
660
  case 10:
555
- if (!(processStatus === 'rejected')) return [3, 14];
556
- if (!(process_1.final_rejection_record_lock === 'unlock')) return [3, 12];
661
+ if (!(processStatus === "rejected")) return [3, 14];
662
+ if (!(process_1.final_rejection_record_lock === "unlock")) return [3, 12];
557
663
  return [4, unlockObjectRecord(pInstance.target_object.o, pInstance.target_object.ids[0])];
558
664
  case 11:
559
665
  _a.sent();
@@ -570,8 +676,11 @@ var handleProcessInstance = function (instanceId, processStatus, userSession) {
570
676
  _a.sent();
571
677
  _a.label = 16;
572
678
  case 16:
573
- if (!(['approved', 'rejected'].indexOf(processStatus) > -1)) return [3, 18];
574
- return [4, (0, notifications_1.sendNotifications)(pInstance.created_by, pInstance.created_by, { status: processStatus, instance: pInstance })];
679
+ if (!(["approved", "rejected"].indexOf(processStatus) > -1)) return [3, 18];
680
+ return [4, (0, notifications_1.sendNotifications)(pInstance.created_by, pInstance.created_by, {
681
+ status: processStatus,
682
+ instance: pInstance,
683
+ })];
575
684
  case 17:
576
685
  _a.sent();
577
686
  _a.label = 18;
@@ -583,7 +692,12 @@ var getCurrentInstanceNode = function (instanceId) { return __awaiter(void 0, vo
583
692
  var pendingNodes, currentNode;
584
693
  return __generator(this, function (_a) {
585
694
  switch (_a.label) {
586
- case 0: return [4, objectql.getObject("process_instance_node").find({ filters: [['process_instance', '=', instanceId], ['node_status', '=', 'pending']] })];
695
+ case 0: return [4, objectql.getObject("process_instance_node").find({
696
+ filters: [
697
+ ["process_instance", "=", instanceId],
698
+ ["node_status", "=", "pending"],
699
+ ],
700
+ })];
587
701
  case 1:
588
702
  pendingNodes = _a.sent();
589
703
  currentNode = null;
@@ -614,17 +728,33 @@ var handleProcessInstanceNode = function (instanceId, currentInstanceNode, proce
614
728
  var otherPendingInstanceHistoryCount, finalProcessStatus, when, instance, to_final_rejection, to_final_approval;
615
729
  return __generator(this, function (_a) {
616
730
  switch (_a.label) {
617
- case 0: return [4, objectql.getObject("process_instance_history").count({ filters: [['process_instance', '=', instanceId], ['step_status', '=', 'pending']] })];
731
+ case 0: return [4, objectql
732
+ .getObject("process_instance_history")
733
+ .count({
734
+ filters: [
735
+ ["process_instance", "=", instanceId],
736
+ ["step_status", "=", "pending"],
737
+ ],
738
+ })];
618
739
  case 1:
619
740
  otherPendingInstanceHistoryCount = _a.sent();
620
741
  if (!(otherPendingInstanceHistoryCount === 0)) return [3, 11];
621
742
  finalProcessStatus = processStatus;
622
- return [4, objectql.getObject("process_instance_node").updateMany([['process_instance', '=', instanceId], ['node_status', '=', 'pending']], { node_status: processStatus, completed_date: new Date(), last_actor: userSession.userId })];
743
+ return [4, objectql.getObject("process_instance_node").updateMany([
744
+ ["process_instance", "=", instanceId],
745
+ ["node_status", "=", "pending"],
746
+ ], {
747
+ node_status: processStatus,
748
+ completed_date: new Date(),
749
+ last_actor: userSession.userId,
750
+ })];
623
751
  case 2:
624
752
  _a.sent();
625
753
  when = getProcessNodeActionWhenByStatus(processStatus);
626
754
  if (!when) return [3, 5];
627
- return [4, objectql.getObject("process_instance").findOne(instanceId)];
755
+ return [4, objectql
756
+ .getObject("process_instance")
757
+ .findOne(instanceId)];
628
758
  case 3:
629
759
  instance = _a.sent();
630
760
  return [4, (0, platform_action_manager_1.runProcessNodeAction)(currentInstanceNode.process_node, when, instance.target_object.ids[0], userSession)];
@@ -637,11 +767,11 @@ var handleProcessInstanceNode = function (instanceId, currentInstanceNode, proce
637
767
  to_final_approval = false;
638
768
  if (nextNodeOptions.node.to_final_rejection) {
639
769
  to_final_rejection = true;
640
- finalProcessStatus = 'rejected';
770
+ finalProcessStatus = "rejected";
641
771
  }
642
772
  else if (nextNodeOptions.node.to_final_approval) {
643
773
  to_final_approval = true;
644
- finalProcessStatus = 'approved';
774
+ finalProcessStatus = "approved";
645
775
  }
646
776
  if (!to_final_rejection) return [3, 6];
647
777
  return [3, 9];
@@ -663,7 +793,9 @@ var handleProcessInstanceNode = function (instanceId, currentInstanceNode, proce
663
793
  var getInstanceHistory = function (instanceHistoryId) { return __awaiter(void 0, void 0, void 0, function () {
664
794
  return __generator(this, function (_a) {
665
795
  switch (_a.label) {
666
- case 0: return [4, objectql.getObject("process_instance_history").findOne(instanceHistoryId)];
796
+ case 0: return [4, objectql
797
+ .getObject("process_instance_history")
798
+ .findOne(instanceHistoryId)];
667
799
  case 1: return [2, _a.sent()];
668
800
  }
669
801
  });
@@ -671,7 +803,12 @@ var getInstanceHistory = function (instanceHistoryId) { return __awaiter(void 0,
671
803
  var getPendingInstanceHistoryCount = function (instanceId) { return __awaiter(void 0, void 0, void 0, function () {
672
804
  return __generator(this, function (_a) {
673
805
  switch (_a.label) {
674
- case 0: return [4, objectql.getObject("process_instance_history").count({ filters: [['process_instance', '=', instanceId], ['step_status', '=', 'pending']] })];
806
+ case 0: return [4, objectql.getObject("process_instance_history").count({
807
+ filters: [
808
+ ["process_instance", "=", instanceId],
809
+ ["step_status", "=", "pending"],
810
+ ],
811
+ })];
675
812
  case 1: return [2, _a.sent()];
676
813
  }
677
814
  });
@@ -683,13 +820,21 @@ var handleProcessInstanceWorkitem = function (currentInstanceNode, processStatus
683
820
  case 0: return [4, getInstanceHistory(instanceHistoryId)];
684
821
  case 1:
685
822
  instanceHistory = _a.sent();
686
- if (!(processStatus === 'rejected' || processStatus === 'approved')) return [3, 6];
687
- return [4, objectql.getObject("process_instance_history").update(instanceHistoryId, { step_status: processStatus, comments: comment, actor: userSession.userId })];
823
+ if (!(processStatus === "rejected" || processStatus === "approved")) return [3, 6];
824
+ return [4, objectql
825
+ .getObject("process_instance_history")
826
+ .update(instanceHistoryId, {
827
+ step_status: processStatus,
828
+ comments: comment,
829
+ actor: userSession.userId,
830
+ })];
688
831
  case 2:
689
832
  _a.sent();
690
- when_multiple_approvers = 'first_response';
833
+ when_multiple_approvers = "first_response";
691
834
  if (!instanceHistory.step_node) return [3, 4];
692
- return [4, objectql.getObject("process_node").findOne(instanceHistory.step_node)];
835
+ return [4, objectql
836
+ .getObject("process_node")
837
+ .findOne(instanceHistory.step_node)];
693
838
  case 3:
694
839
  processNode = _a.sent();
695
840
  if (processNode && processNode.when_multiple_approvers) {
@@ -697,8 +842,13 @@ var handleProcessInstanceWorkitem = function (currentInstanceNode, processStatus
697
842
  }
698
843
  _a.label = 4;
699
844
  case 4:
700
- if (!(when_multiple_approvers === 'first_response' || (when_multiple_approvers === 'unanimous' && processStatus === 'rejected'))) return [3, 6];
701
- return [4, objectql.getObject("process_instance_history").updateMany([['_id', '!=', instanceHistory._id], ['process_instance', '=', instanceHistory.process_instance], ['step_status', '=', 'pending']], { step_status: 'no_response' })];
845
+ if (!(when_multiple_approvers === "first_response" ||
846
+ (when_multiple_approvers === "unanimous" && processStatus === "rejected"))) return [3, 6];
847
+ return [4, objectql.getObject("process_instance_history").updateMany([
848
+ ["_id", "!=", instanceHistory._id],
849
+ ["process_instance", "=", instanceHistory.process_instance],
850
+ ["step_status", "=", "pending"],
851
+ ], { step_status: "no_response" })];
702
852
  case 5:
703
853
  _a.sent();
704
854
  _a.label = 6;
@@ -731,8 +881,10 @@ var processInstanceWorkitemApprove = function (instanceHistoryId, userSession, c
731
881
  return [4, getProcessNodes(instance.process_definition, userSession.spaceId)];
732
882
  case 5:
733
883
  nodes = _c.sent();
734
- index = _.findIndex(nodes, function (item) { return item._id === currentInstanceNode.process_node; });
735
- _a = currentProcessNode.when_multiple_approvers === 'first_response';
884
+ index = _.findIndex(nodes, function (item) {
885
+ return item._id === currentInstanceNode.process_node;
886
+ });
887
+ _a = currentProcessNode.when_multiple_approvers === "first_response";
736
888
  if (_a) return [3, 7];
737
889
  return [4, getPendingInstanceHistoryCount(instanceId)];
738
890
  case 6:
@@ -751,7 +903,7 @@ var processInstanceWorkitemApprove = function (instanceHistoryId, userSession, c
751
903
  case 9:
752
904
  _b.approve = _c.sent();
753
905
  _c.label = 10;
754
- case 10: return [4, handleProcessInstanceWorkitem(currentInstanceNode, 'approved', instanceHistoryId, userSession, comment, nextNodeOptions)];
906
+ case 10: return [4, handleProcessInstanceWorkitem(currentInstanceNode, "approved", instanceHistoryId, userSession, comment, nextNodeOptions)];
755
907
  case 11:
756
908
  _c.sent();
757
909
  return [2];
@@ -775,7 +927,7 @@ var processInstanceWorkitemReject = function (instanceHistoryId, userSession, co
775
927
  return [4, getProcessNode(instanceHistory.step_node)];
776
928
  case 3:
777
929
  currentProcessNode = _c.sent();
778
- if (!(currentProcessNode.reject_behavior === 'back_to_previous')) return [3, 6];
930
+ if (!(currentProcessNode.reject_behavior === "back_to_previous")) return [3, 6];
779
931
  nextNodeOptions = {};
780
932
  _a = nextNodeOptions;
781
933
  return [4, getPreviousNode(instanceId, currentProcessNode, userSession)];
@@ -786,7 +938,7 @@ var processInstanceWorkitemReject = function (instanceHistoryId, userSession, co
786
938
  case 5:
787
939
  _b.approve = _c.sent();
788
940
  _c.label = 6;
789
- case 6: return [4, handleProcessInstanceWorkitem(currentInstanceNode, 'rejected', instanceHistoryId, userSession, comment, nextNodeOptions)];
941
+ case 6: return [4, handleProcessInstanceWorkitem(currentInstanceNode, "rejected", instanceHistoryId, userSession, comment, nextNodeOptions)];
790
942
  case 7:
791
943
  _c.sent();
792
944
  return [2];
@@ -800,19 +952,26 @@ var processInstanceWorkitemReassign = function (instanceHistoryId, userSession,
800
952
  switch (_a.label) {
801
953
  case 0:
802
954
  if (_.isEmpty(chooseApprover)) {
803
- throw new objectql_1.SteedosError('process_approval_error_reassign_approver_notFind');
955
+ throw new objectql_1.SteedosError("process_approval_error_reassign_approver_notFind");
804
956
  }
805
957
  if (!_.isString(chooseApprover)) {
806
- throw new objectql_1.SteedosError('process_approval_error_reassign_approver_mustBeString');
958
+ throw new objectql_1.SteedosError("process_approval_error_reassign_approver_mustBeString");
807
959
  }
808
- return [4, objectql.getObject("process_instance_history").update(instanceHistoryId, {
960
+ return [4, objectql
961
+ .getObject("process_instance_history")
962
+ .update(instanceHistoryId, {
809
963
  step_status: "reassigned",
810
964
  actor: chooseApprover,
811
- comments: comment
965
+ comments: comment,
812
966
  })];
813
967
  case 1:
814
968
  history = _a.sent();
815
- return [4, addInstanceHistory(userSession.spaceId, history.process_instance, 'pending', null, { nodeId: history.step_node, actor: chooseApprover, originalActor: history.original_actor, submitted_by: userSession.userId }, userSession)];
969
+ return [4, addInstanceHistory(userSession.spaceId, history.process_instance, "pending", null, {
970
+ nodeId: history.step_node,
971
+ actor: chooseApprover,
972
+ originalActor: history.original_actor,
973
+ submitted_by: userSession.userId,
974
+ }, userSession)];
816
975
  case 2:
817
976
  _a.sent();
818
977
  return [2];
@@ -825,8 +984,11 @@ var processInstanceWorkitemRemovebyInstance = function (instanceId, userSession,
825
984
  return __generator(this, function (_a) {
826
985
  switch (_a.label) {
827
986
  case 0:
828
- processStatus = 'removed';
829
- return [4, objectql.getObject("process_instance_history").updateMany([['process_instance', '=', instanceId], ['step_status', '=', 'pending']], { step_status: processStatus, comments: comment })];
987
+ processStatus = "removed";
988
+ return [4, objectql.getObject("process_instance_history").updateMany([
989
+ ["process_instance", "=", instanceId],
990
+ ["step_status", "=", "pending"],
991
+ ], { step_status: processStatus, comments: comment })];
830
992
  case 1:
831
993
  _a.sent();
832
994
  return [4, handleProcessInstanceNode(instanceId, null, processStatus, null, userSession)];