@docbrasil/api-systemmanager 1.1.72 → 1.1.74

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.
@@ -323,6 +323,226 @@ class Task {
323
323
  throw ex;
324
324
  }
325
325
  }
326
+
327
+ /**
328
+ * @author Myndware <augusto.pissarra@myndware.com>
329
+ * @description Save task progress without completing it
330
+ * @param {object} params - Params to save task
331
+ * @param {string} params.processId - Process id (_id database)
332
+ * @param {string} params.taskId - Task id (_id database)
333
+ * @param {string} params.flowName - Flow name
334
+ * @param {string} params.orgId - Organization id (_id database)
335
+ * @param {array} params.formData - Form data to save
336
+ * @param {array=} params.selectedDocs - Selected documents
337
+ * @param {array=} params.selectedAssignees - Selected assignees
338
+ * @param {array=} params.selectedBoxes - Selected boxes
339
+ * @param {object=} params.advFormData - Advanced form data
340
+ * @param {object=} params.advFormSchema - Advanced form schema
341
+ * @param {string=} params.status - Task status (empty string for save)
342
+ * @param {number=} params.order - Task order
343
+ * @param {string=} params.title - Task title
344
+ * @param {array=} params.tags - Task tags
345
+ * @param {string=} params.dueDate - Due date ISO string
346
+ * @param {string} session - Session, token JWT
347
+ * @return {Promise}
348
+ * @public
349
+ * @async
350
+ * @example
351
+ *
352
+ * const API = require('@docbrasil/api-systemmanager');
353
+ * const api = new API();
354
+ * const params = {
355
+ * processId: '5dadd01dc4af3941d42f8c5c',
356
+ * taskId: '5df7f19618430c89a41a19d2',
357
+ * flowName: 'simpleTask',
358
+ * orgId: '55e4a3bd6be6b45210833fae',
359
+ * formData: [{ name: 'Group', fields: [...] }],
360
+ * selectedDocs: [],
361
+ * selectedAssignees: [],
362
+ * selectedBoxes: [],
363
+ * advFormData: {},
364
+ * advFormSchema: {},
365
+ * status: '',
366
+ * order: 0,
367
+ * title: 'My Task',
368
+ * tags: [],
369
+ * dueDate: '2024-01-15T00:00:00Z'
370
+ * };
371
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
372
+ * await api.user.task.saveTask(params, session);
373
+ */
374
+ async saveTask(params, session) {
375
+ const self = this;
376
+
377
+ try {
378
+ Joi.assert(params, Joi.object().required());
379
+ Joi.assert(params.processId, Joi.string().required(), 'Process id (_id database)');
380
+ Joi.assert(params.taskId, Joi.string().required(), 'Task id (_id database)');
381
+ Joi.assert(params.flowName, Joi.string().required(), 'Flow name');
382
+ Joi.assert(params.orgId, Joi.string().required(), 'Organization id (_id database)');
383
+ Joi.assert(params.formData, Joi.array().required(), 'Form data to save');
384
+ Joi.assert(params.selectedDocs, Joi.array(), 'Selected documents');
385
+ Joi.assert(params.selectedAssignees, Joi.array(), 'Selected assignees');
386
+ Joi.assert(params.selectedBoxes, Joi.array(), 'Selected boxes');
387
+ Joi.assert(params.advFormData, Joi.object(), 'Advanced form data');
388
+ Joi.assert(params.advFormSchema, Joi.object(), 'Advanced form schema');
389
+ Joi.assert(params.status, Joi.string().allow(''), 'Task status');
390
+ Joi.assert(params.order, Joi.number(), 'Task order');
391
+ Joi.assert(params.title, Joi.string().allow(''), 'Task title');
392
+ Joi.assert(params.tags, Joi.array(), 'Task tags');
393
+ Joi.assert(params.dueDate, Joi.string(), 'Due date ISO string');
394
+ Joi.assert(session, Joi.string().required(), 'Session token JWT');
395
+
396
+ const {
397
+ processId,
398
+ taskId,
399
+ flowName,
400
+ orgId,
401
+ formData,
402
+ selectedDocs = [],
403
+ selectedAssignees = [],
404
+ selectedBoxes = [],
405
+ advFormData = {},
406
+ advFormSchema = {},
407
+ status = '',
408
+ order = 0,
409
+ title = '',
410
+ tags = [],
411
+ dueDate
412
+ } = params;
413
+
414
+ const body = {
415
+ formData,
416
+ selectedDocs,
417
+ selectedAssignees,
418
+ selectedBoxes,
419
+ advFormData,
420
+ advFormSchema,
421
+ status,
422
+ order,
423
+ title,
424
+ tags
425
+ };
426
+ if (dueDate) body.dueDate = dueDate;
427
+
428
+ const url = `organizations/${orgId}/adhoc/${processId}/save/${taskId}/${flowName}`;
429
+ const apiCall = self._client.put(url, body, self._setHeader(session));
430
+
431
+ return self._returnData(await apiCall);
432
+ } catch (ex) {
433
+ throw ex;
434
+ }
435
+ }
436
+
437
+ /**
438
+ * @author Myndware <augusto.pissarra@myndware.com>
439
+ * @description End/complete a task and advance the workflow
440
+ * @param {object} params - Params to end task
441
+ * @param {string} params.processId - Process id (_id database)
442
+ * @param {string} params.taskId - Task id (_id database)
443
+ * @param {string} params.flowName - Flow name
444
+ * @param {string} params.orgId - Organization id (_id database)
445
+ * @param {array} params.formData - Form data to submit
446
+ * @param {array=} params.selectedDocs - Selected documents
447
+ * @param {array=} params.selectedAssignees - Selected assignees
448
+ * @param {array=} params.selectedBoxes - Selected boxes
449
+ * @param {object=} params.advFormData - Advanced form data
450
+ * @param {object=} params.advFormSchema - Advanced form schema
451
+ * @param {string=} params.status - Task status
452
+ * @param {number=} params.order - Task order
453
+ * @param {string=} params.title - Task title
454
+ * @param {array=} params.tags - Task tags
455
+ * @param {string=} params.dueDate - Due date ISO string
456
+ * @param {string} session - Session, token JWT
457
+ * @return {Promise}
458
+ * @public
459
+ * @async
460
+ * @example
461
+ *
462
+ * const API = require('@docbrasil/api-systemmanager');
463
+ * const api = new API();
464
+ * const params = {
465
+ * processId: '5dadd01dc4af3941d42f8c5c',
466
+ * taskId: '5df7f19618430c89a41a19d2',
467
+ * flowName: 'simpleTask',
468
+ * orgId: '55e4a3bd6be6b45210833fae',
469
+ * formData: [{ name: 'Group', fields: [...] }],
470
+ * selectedDocs: [],
471
+ * selectedAssignees: [],
472
+ * selectedBoxes: [],
473
+ * advFormData: {},
474
+ * advFormSchema: {},
475
+ * status: '',
476
+ * order: 0,
477
+ * title: 'My Task',
478
+ * tags: [],
479
+ * dueDate: '2024-01-15T00:00:00Z'
480
+ * };
481
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
482
+ * await api.user.task.endTask(params, session);
483
+ */
484
+ async endTask(params, session) {
485
+ const self = this;
486
+
487
+ try {
488
+ Joi.assert(params, Joi.object().required());
489
+ Joi.assert(params.processId, Joi.string().required(), 'Process id (_id database)');
490
+ Joi.assert(params.taskId, Joi.string().required(), 'Task id (_id database)');
491
+ Joi.assert(params.flowName, Joi.string().required(), 'Flow name');
492
+ Joi.assert(params.orgId, Joi.string().required(), 'Organization id (_id database)');
493
+ Joi.assert(params.formData, Joi.array().required(), 'Form data to submit');
494
+ Joi.assert(params.selectedDocs, Joi.array(), 'Selected documents');
495
+ Joi.assert(params.selectedAssignees, Joi.array(), 'Selected assignees');
496
+ Joi.assert(params.selectedBoxes, Joi.array(), 'Selected boxes');
497
+ Joi.assert(params.advFormData, Joi.object(), 'Advanced form data');
498
+ Joi.assert(params.advFormSchema, Joi.object(), 'Advanced form schema');
499
+ Joi.assert(params.status, Joi.string().allow(''), 'Task status');
500
+ Joi.assert(params.order, Joi.number(), 'Task order');
501
+ Joi.assert(params.title, Joi.string().allow(''), 'Task title');
502
+ Joi.assert(params.tags, Joi.array(), 'Task tags');
503
+ Joi.assert(params.dueDate, Joi.string(), 'Due date ISO string');
504
+ Joi.assert(session, Joi.string().required(), 'Session token JWT');
505
+
506
+ const {
507
+ processId,
508
+ taskId,
509
+ flowName,
510
+ orgId,
511
+ formData,
512
+ selectedDocs = [],
513
+ selectedAssignees = [],
514
+ selectedBoxes = [],
515
+ advFormData = {},
516
+ advFormSchema = {},
517
+ status = '',
518
+ order = 0,
519
+ title = '',
520
+ tags = [],
521
+ dueDate
522
+ } = params;
523
+
524
+ const body = {
525
+ formData,
526
+ selectedDocs,
527
+ selectedAssignees,
528
+ selectedBoxes,
529
+ advFormData,
530
+ advFormSchema,
531
+ status,
532
+ order,
533
+ title,
534
+ tags
535
+ };
536
+ if (dueDate) body.dueDate = dueDate;
537
+
538
+ const url = `organizations/${orgId}/adhoc/${processId}/endprocess/${taskId}/${flowName}`;
539
+ const apiCall = self._client.put(url, body, self._setHeader(session));
540
+
541
+ return self._returnData(await apiCall);
542
+ } catch (ex) {
543
+ throw ex;
544
+ }
545
+ }
326
546
  }
327
547
 
328
548
  export default Task;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@docbrasil/api-systemmanager",
3
3
  "description": "Module API System Manager",
4
- "version": "1.1.72",
4
+ "version": "1.1.74",
5
5
  "scripts": {
6
6
  "htmldoc": "rm -rf docs && jsdoc api/** -d docs -t ./node_modules/better-docs",
7
7
  "doc": "rm -rf doc && mkdir doc && jsdoc2md api/**/* api/* > doc/api.md",