@docbrasil/api-systemmanager 1.1.7 → 1.1.9

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 (76) hide show
  1. package/api/user/document.js +15 -2
  2. package/api/user/index.js +2 -0
  3. package/api/user/settings.js +144 -0
  4. package/dist/bundle.cjs +155 -2
  5. package/dist/bundle.mjs +1 -1
  6. package/doc/api.md +79 -0
  7. package/docs/Admin.html +1 -1
  8. package/docs/AdminDocuments.html +1 -1
  9. package/docs/AdminForm.html +1 -1
  10. package/docs/AdminLists.html +1 -1
  11. package/docs/AdminMessage.html +1 -1
  12. package/docs/AdminNotification.html +1 -1
  13. package/docs/AdminPlugin.html +1 -1
  14. package/docs/AdminPolicy.html +1 -1
  15. package/docs/AdminProcesses.html +1 -1
  16. package/docs/AdminTask.html +1 -1
  17. package/docs/AdminUser.html +1 -1
  18. package/docs/Application.html +1 -1
  19. package/docs/Datasource.html +1 -1
  20. package/docs/Dispatch.html +1 -1
  21. package/docs/Documents.html +13 -13
  22. package/docs/External.html +1 -1
  23. package/docs/GeoLocation.html +1 -1
  24. package/docs/Help.html +1 -1
  25. package/docs/Login.html +1 -1
  26. package/docs/MyTasks.html +1 -1
  27. package/docs/Notification.html +1 -1
  28. package/docs/Organization.html +1 -1
  29. package/docs/Page.html +1 -1
  30. package/docs/Process.html +1 -1
  31. package/docs/Register.html +1 -1
  32. package/docs/Session.html +1 -1
  33. package/docs/Settings.html +863 -0
  34. package/docs/Task.html +1 -1
  35. package/docs/TaskAvailable.html +1 -1
  36. package/docs/Updates.html +1 -1
  37. package/docs/User.html +1 -1
  38. package/docs/Users.html +2 -2
  39. package/docs/admin_doctypes.js.html +1 -1
  40. package/docs/admin_document.js.html +1 -1
  41. package/docs/admin_form.js.html +1 -1
  42. package/docs/admin_index.js.html +1 -1
  43. package/docs/admin_list.js.html +1 -1
  44. package/docs/admin_message.js.html +1 -1
  45. package/docs/admin_notification.js.html +1 -1
  46. package/docs/admin_organization.js.html +1 -1
  47. package/docs/admin_plugin.js.html +1 -1
  48. package/docs/admin_policy.js.html +1 -1
  49. package/docs/admin_processes.js.html +1 -1
  50. package/docs/admin_task.js.html +1 -1
  51. package/docs/admin_user.js.html +1 -1
  52. package/docs/dispatch.js.html +1 -1
  53. package/docs/external.js.html +1 -1
  54. package/docs/general_geoLocation.js.html +1 -1
  55. package/docs/general_index.js.html +1 -1
  56. package/docs/index.html +1 -1
  57. package/docs/login.js.html +1 -1
  58. package/docs/session.js.html +1 -1
  59. package/docs/user_application.js.html +1 -1
  60. package/docs/user_datasource.js.html +1 -1
  61. package/docs/user_document.js.html +16 -3
  62. package/docs/user_help.js.html +1 -1
  63. package/docs/user_index.js.html +3 -1
  64. package/docs/user_my_tasks.js.html +1 -1
  65. package/docs/user_notification.js.html +1 -1
  66. package/docs/user_organization.js.html +1 -1
  67. package/docs/user_page.js.html +1 -1
  68. package/docs/user_process.js.html +1 -1
  69. package/docs/user_register.js.html +1 -1
  70. package/docs/user_settings.js.html +261 -0
  71. package/docs/user_task.js.html +1 -1
  72. package/docs/user_task_available.js.html +1 -1
  73. package/docs/user_updates.js.html +1 -1
  74. package/docs/user_user.js.html +1 -1
  75. package/docs/utils_promises.js.html +1 -1
  76. package/package.json +1 -1
@@ -3,6 +3,19 @@ import Boom from '@hapi/boom';
3
3
  import Joi from 'joi';
4
4
  import Moment from 'moment';
5
5
 
6
+ const Random = {
7
+ S4: function () {
8
+ return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
9
+ },
10
+ guid: function (separator) {
11
+ var separator = (_.isUndefined(separator) ? "" : separator);
12
+ return (this.S4() + this.S4() + separator + this.S4() + separator + this.S4() + separator + this.S4() + separator + this.S4() + this.S4() + this.S4());
13
+ },
14
+ code: function () {
15
+ return this.S4().toUpperCase() + '-' + this.S4().toUpperCase() + '-' + this.S4().toUpperCase();
16
+ }
17
+ };
18
+
6
19
  /**
7
20
  * Class for documents, permission user
8
21
  * @class
@@ -79,13 +92,13 @@ class Documents {
79
92
  */
80
93
  _formatDocument(params) {
81
94
  try {
82
- const document = _.get(params, 'document');
95
+ const document = _.get(params, 'document', '');
83
96
  const urlType = _.isEmpty(document) ? '' : _.get(params, 'urlType', 'S3');
84
97
  const addType = _.isEmpty(document) ? '' : _.get(params, 'addType', 'S3_SIGNED');
85
98
  return {
86
99
  orgname: _.get(params, 'orgname'),
87
100
  areaId: _.get(params, 'areaId'),
88
- docId: _.get(params, 'docId'),
101
+ docId: _.get(params, 'docId', Random.code()),
89
102
  documentDate: _.get(params, 'documentDate', Moment().format()),
90
103
  document,
91
104
  type: _.get(params, 'type'),
package/api/user/index.js CHANGED
@@ -12,6 +12,7 @@ import Updates from './updates.js';
12
12
  import Help from './help.js';
13
13
  import Datasource from './datasource.js';
14
14
  import Application from './application.js';
15
+ import Settings from './settings.js';
15
16
 
16
17
  /**
17
18
  * @class API request, user permission level
@@ -34,6 +35,7 @@ class Users {
34
35
  self.process = new Process(options);
35
36
  self.task = new Task(options);
36
37
  self.user = self.profile = new User(options);
38
+ self.settings = new Settings(options);
37
39
  self.register = new Register(options);
38
40
  self.notification = new Notification(options);
39
41
  self.updates = new Updates(options);
@@ -0,0 +1,144 @@
1
+ import _ from 'lodash';
2
+ import Boom from '@hapi/boom';
3
+ import Joi from 'joi';
4
+
5
+ /**
6
+ * Class for user settings
7
+ * @class
8
+ */
9
+ class Settings {
10
+
11
+ constructor(options) {
12
+ Joi.assert(options, Joi.object().required());
13
+ Joi.assert(options.parent, Joi.object().required());
14
+
15
+ const self = this;
16
+ self._parent = options.parent;
17
+ self._client = self._parent.dispatch.getClient();
18
+ self.gender = {
19
+ male: 1,
20
+ female: 2,
21
+ nonBinary: 3
22
+ };
23
+ }
24
+
25
+ /**
26
+ * @author CloudBrasil <abernardo.br@gmail.com>
27
+ * @description Get the return data and check for errors
28
+ * @param {object} retData Response HTTP
29
+ * @return {*}
30
+ * @private
31
+ */
32
+ _returnData(retData, def = {}) {
33
+ if (retData.status !== 200) {
34
+ return Boom.badRequest(_.get(retData, 'message', 'No error message reported!'))
35
+ } else {
36
+ return _.get(retData, 'data', def);
37
+ }
38
+ }
39
+
40
+ /**
41
+ * @author CloudBrasil <abernardo.br@gmail.com>
42
+ * @description Set header with new session
43
+ * @param {string} session Session, token JWT
44
+ * @return {object} header with new session
45
+ * @private
46
+ */
47
+ _setHeader(session) {
48
+ return {
49
+ headers: {
50
+ authorization: session,
51
+ }
52
+ };
53
+ }
54
+
55
+ /**
56
+ * @author CloudBrasil <abernardo.br@gmail.com>
57
+ * @description Adds/updates a user settings
58
+ * @param {object} settings Full user settings
59
+ * @param {string} session Is token JWT of user NOT allow SU
60
+ * @return {Promise}
61
+ * @public
62
+ * @async
63
+ * @example
64
+ *
65
+ * const API = require('@docbrasil/api-systemmanager');
66
+ * const api = new API();
67
+ * const settings = {
68
+ * areaId: '55e4a3bd6be6b45210833fae'
69
+ * };
70
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
71
+ * await api.user.settings.upsert(settings, session);
72
+ */
73
+ async upsert(settings, session) {
74
+ const self = this;
75
+
76
+ try {
77
+ Joi.assert(settings, Joi.object().required());
78
+ Joi.assert(session, Joi.string().required());
79
+
80
+ const apiCall = self._client.put(`/users/settings`, settings, self._setHeader(session));
81
+ return self._returnData(await apiCall);
82
+ } catch (ex) {
83
+ throw ex;
84
+ }
85
+ }
86
+
87
+ /**
88
+ * @author CloudBrasil <abernardo.br@gmail.com>
89
+ * @description Gets the user settings
90
+ * @param {string} session Is token JWT of user NOT allow SU
91
+ * @return {Promise}
92
+ * @public
93
+ * @async
94
+ * @example
95
+ *
96
+ * const API = require('@docbrasil/api-systemmanager');
97
+ * const api = new API();
98
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
99
+ * await api.user.settings.get(session);
100
+ */
101
+ async get(session) {
102
+ const self = this;
103
+
104
+ try {
105
+ Joi.assert(settings, Joi.object().required());
106
+ Joi.assert(session, Joi.string().required());
107
+
108
+ const apiCall = self._client.get(`/users/settings`, self._setHeader(session));
109
+ return self._returnData(await apiCall);
110
+ } catch (ex) {
111
+ throw ex;
112
+ }
113
+ }
114
+
115
+ /**
116
+ * @author CloudBrasil <abernardo.br@gmail.com>
117
+ * @description Removes the user settings
118
+ * @param {string} session Is token JWT of user NOT allow SU
119
+ * @return {Promise}
120
+ * @public
121
+ * @async
122
+ * @example
123
+ *
124
+ * const API = require('@docbrasil/api-systemmanager');
125
+ * const api = new API();
126
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
127
+ * await api.user.settings.remove(session);
128
+ */
129
+ async remove(session) {
130
+ const self = this;
131
+
132
+ try {
133
+ Joi.assert(settings, Joi.object().required());
134
+ Joi.assert(session, Joi.string().required());
135
+
136
+ const apiCall = self._client.del(`/users/settings`, self._setHeader(session));
137
+ return self._returnData(await apiCall);
138
+ } catch (ex) {
139
+ throw ex;
140
+ }
141
+ }
142
+ }
143
+
144
+ export default Settings;
package/dist/bundle.cjs CHANGED
@@ -555,6 +555,19 @@ class Users$1 {
555
555
  }
556
556
  }
557
557
 
558
+ const Random = {
559
+ S4: function () {
560
+ return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
561
+ },
562
+ guid: function (separator) {
563
+ var separator = (___default["default"].isUndefined(separator) ? "" : separator);
564
+ return (this.S4() + this.S4() + separator + this.S4() + separator + this.S4() + separator + this.S4() + separator + this.S4() + this.S4() + this.S4());
565
+ },
566
+ code: function () {
567
+ return this.S4().toUpperCase() + '-' + this.S4().toUpperCase() + '-' + this.S4().toUpperCase();
568
+ }
569
+ };
570
+
558
571
  /**
559
572
  * Class for documents, permission user
560
573
  * @class
@@ -631,13 +644,13 @@ class Documents {
631
644
  */
632
645
  _formatDocument(params) {
633
646
  try {
634
- const document = ___default["default"].get(params, 'document');
647
+ const document = ___default["default"].get(params, 'document', '');
635
648
  const urlType = ___default["default"].isEmpty(document) ? '' : ___default["default"].get(params, 'urlType', 'S3');
636
649
  const addType = ___default["default"].isEmpty(document) ? '' : ___default["default"].get(params, 'addType', 'S3_SIGNED');
637
650
  return {
638
651
  orgname: ___default["default"].get(params, 'orgname'),
639
652
  areaId: ___default["default"].get(params, 'areaId'),
640
- docId: ___default["default"].get(params, 'docId'),
653
+ docId: ___default["default"].get(params, 'docId', Random.code()),
641
654
  documentDate: ___default["default"].get(params, 'documentDate', Moment__default["default"]().format()),
642
655
  document,
643
656
  type: ___default["default"].get(params, 'type'),
@@ -10348,6 +10361,145 @@ class Application {
10348
10361
  }
10349
10362
  }
10350
10363
 
10364
+ /**
10365
+ * Class for user settings
10366
+ * @class
10367
+ */
10368
+ class Settings {
10369
+
10370
+ constructor(options) {
10371
+ Joi__default["default"].assert(options, Joi__default["default"].object().required());
10372
+ Joi__default["default"].assert(options.parent, Joi__default["default"].object().required());
10373
+
10374
+ const self = this;
10375
+ self._parent = options.parent;
10376
+ self._client = self._parent.dispatch.getClient();
10377
+ self.gender = {
10378
+ male: 1,
10379
+ female: 2,
10380
+ nonBinary: 3
10381
+ };
10382
+ }
10383
+
10384
+ /**
10385
+ * @author CloudBrasil <abernardo.br@gmail.com>
10386
+ * @description Get the return data and check for errors
10387
+ * @param {object} retData Response HTTP
10388
+ * @return {*}
10389
+ * @private
10390
+ */
10391
+ _returnData(retData, def = {}) {
10392
+ if (retData.status !== 200) {
10393
+ return Boom__default["default"].badRequest(___default["default"].get(retData, 'message', 'No error message reported!'))
10394
+ } else {
10395
+ return ___default["default"].get(retData, 'data', def);
10396
+ }
10397
+ }
10398
+
10399
+ /**
10400
+ * @author CloudBrasil <abernardo.br@gmail.com>
10401
+ * @description Set header with new session
10402
+ * @param {string} session Session, token JWT
10403
+ * @return {object} header with new session
10404
+ * @private
10405
+ */
10406
+ _setHeader(session) {
10407
+ return {
10408
+ headers: {
10409
+ authorization: session,
10410
+ }
10411
+ };
10412
+ }
10413
+
10414
+ /**
10415
+ * @author CloudBrasil <abernardo.br@gmail.com>
10416
+ * @description Adds/updates a user settings
10417
+ * @param {object} settings Full user settings
10418
+ * @param {string} session Is token JWT of user NOT allow SU
10419
+ * @return {Promise}
10420
+ * @public
10421
+ * @async
10422
+ * @example
10423
+ *
10424
+ * const API = require('@docbrasil/api-systemmanager');
10425
+ * const api = new API();
10426
+ * const settings = {
10427
+ * areaId: '55e4a3bd6be6b45210833fae'
10428
+ * };
10429
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
10430
+ * await api.user.settings.upsert(settings, session);
10431
+ */
10432
+ async upsert(settings, session) {
10433
+ const self = this;
10434
+
10435
+ try {
10436
+ Joi__default["default"].assert(settings, Joi__default["default"].object().required());
10437
+ Joi__default["default"].assert(session, Joi__default["default"].string().required());
10438
+
10439
+ const apiCall = self._client.put(`/users/settings`, settings, self._setHeader(session));
10440
+ return self._returnData(await apiCall);
10441
+ } catch (ex) {
10442
+ throw ex;
10443
+ }
10444
+ }
10445
+
10446
+ /**
10447
+ * @author CloudBrasil <abernardo.br@gmail.com>
10448
+ * @description Gets the user settings
10449
+ * @param {string} session Is token JWT of user NOT allow SU
10450
+ * @return {Promise}
10451
+ * @public
10452
+ * @async
10453
+ * @example
10454
+ *
10455
+ * const API = require('@docbrasil/api-systemmanager');
10456
+ * const api = new API();
10457
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
10458
+ * await api.user.settings.get(session);
10459
+ */
10460
+ async get(session) {
10461
+ const self = this;
10462
+
10463
+ try {
10464
+ Joi__default["default"].assert(settings, Joi__default["default"].object().required());
10465
+ Joi__default["default"].assert(session, Joi__default["default"].string().required());
10466
+
10467
+ const apiCall = self._client.get(`/users/settings`, self._setHeader(session));
10468
+ return self._returnData(await apiCall);
10469
+ } catch (ex) {
10470
+ throw ex;
10471
+ }
10472
+ }
10473
+
10474
+ /**
10475
+ * @author CloudBrasil <abernardo.br@gmail.com>
10476
+ * @description Removes the user settings
10477
+ * @param {string} session Is token JWT of user NOT allow SU
10478
+ * @return {Promise}
10479
+ * @public
10480
+ * @async
10481
+ * @example
10482
+ *
10483
+ * const API = require('@docbrasil/api-systemmanager');
10484
+ * const api = new API();
10485
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
10486
+ * await api.user.settings.remove(session);
10487
+ */
10488
+ async remove(session) {
10489
+ const self = this;
10490
+
10491
+ try {
10492
+ Joi__default["default"].assert(settings, Joi__default["default"].object().required());
10493
+ Joi__default["default"].assert(session, Joi__default["default"].string().required());
10494
+
10495
+ const apiCall = self._client.del(`/users/settings`, self._setHeader(session));
10496
+ return self._returnData(await apiCall);
10497
+ } catch (ex) {
10498
+ throw ex;
10499
+ }
10500
+ }
10501
+ }
10502
+
10351
10503
  /**
10352
10504
  * @class API request, user permission level
10353
10505
  */
@@ -10369,6 +10521,7 @@ class Users {
10369
10521
  self.process = new Process(options);
10370
10522
  self.task = new Task(options);
10371
10523
  self.user = self.profile = new User(options);
10524
+ self.settings = new Settings(options);
10372
10525
  self.register = new Register(options);
10373
10526
  self.notification = new Notification(options);
10374
10527
  self.updates = new Updates(options);