@docbrasil/api-systemmanager 1.0.94 → 1.0.95
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.
- package/api/admin/doctypes.js +76 -76
- package/api/admin/document.js +332 -332
- package/api/admin/form.js +151 -151
- package/api/admin/index.js +46 -46
- package/api/admin/list.js +133 -133
- package/api/admin/message.js +194 -194
- package/api/admin/notification.js +233 -233
- package/api/admin/organization.js +124 -124
- package/api/admin/plugin.js +116 -116
- package/api/admin/policy.js +78 -78
- package/api/admin/processes.js +370 -370
- package/api/admin/task.js +125 -125
- package/api/admin/user.js +185 -185
- package/api/dispatch.js +101 -101
- package/api/general/geoLocation.js +88 -88
- package/api/general/index.js +23 -23
- package/api/login.js +267 -267
- package/api/session.js +85 -85
- package/api/user/datasource.js +144 -144
- package/api/user/document.js +730 -730
- package/api/user/index.js +39 -39
- package/api/user/notification.js +101 -101
- package/api/user/organization.js +230 -230
- package/api/user/process.js +191 -191
- package/api/user/register.js +205 -205
- package/api/user/task.js +201 -201
- package/api/user/task_available.js +135 -135
- package/api/user/user.js +287 -287
- package/api/utils/cypher.js +37 -37
- package/api/utils/promises.js +118 -118
- package/bundleRollup.js +158 -158
- package/dist/bundle.cjs +4875 -4875
- package/dist/bundle.mjs +1 -1
- package/doc/api.md +675 -337
- package/doc.md +653 -653
- package/helper/boom.js +487 -487
- package/helper/cryptojs.js +6067 -6067
- package/index.js +85 -85
- package/package-lock.json +4635 -4635
- package/package.json +68 -68
- package/readme.md +25 -25
- package/tests/admin/document.spec.js +45 -45
- package/tests/admin/form.spec.js +74 -74
- package/tests/admin/list.spec.js +86 -86
- package/tests/admin/message.js +92 -92
- package/tests/admin/notification.spec.js +174 -174
- package/tests/admin/pluginspec..js +71 -71
- package/tests/admin/policy.spec.js +71 -71
- package/tests/admin/processes.spec.js +119 -119
- package/tests/admin/users.spec.js +127 -127
- package/tests/documents.spec.js +164 -164
- package/tests/login.spec.js +91 -91
- package/tests/session.spec..js +58 -58
- package/tests/user/documents.js +164 -164
- package/tests/user/organization.js +122 -122
- package/tests/user/process.js +71 -71
- package/tests/user/task_available.js +75 -75
- package/tests/user/user.js +88 -88
|
@@ -1,233 +1,233 @@
|
|
|
1
|
-
import _ from 'lodash';
|
|
2
|
-
import Boom from '@hapi/boom';
|
|
3
|
-
import Joi from 'joi';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Admin Class for notification, permission admin
|
|
7
|
-
* @class
|
|
8
|
-
*/
|
|
9
|
-
class AdminNotification {
|
|
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
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* @author Augusto Pissarra <abernardo.br@gmail.com>
|
|
22
|
-
* @description Get the return data and check for errors
|
|
23
|
-
* @param {object} retData Response HTTP
|
|
24
|
-
* @return {*}
|
|
25
|
-
* @private
|
|
26
|
-
*/
|
|
27
|
-
_returnData(retData, def = {}) {
|
|
28
|
-
if (retData.status !== 200) {
|
|
29
|
-
return Boom.badRequest(_.get(retData, 'message', 'No error message reported!'))
|
|
30
|
-
} else {
|
|
31
|
-
return _.get(retData, 'data', def);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
37
|
-
* @description Set header with new session
|
|
38
|
-
* @param {string} session Session, token JWT
|
|
39
|
-
* @return {object} header with new session
|
|
40
|
-
* @private
|
|
41
|
-
*/
|
|
42
|
-
_setHeader(session) {
|
|
43
|
-
return {
|
|
44
|
-
headers: {
|
|
45
|
-
authorization: session,
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* @description Send real time notification
|
|
52
|
-
* @param {object} params Params to send notification
|
|
53
|
-
* @param {string} params.userIds Users to send notification
|
|
54
|
-
* @param {object} params.message Object with data to send user
|
|
55
|
-
* @param {object} session Session, token JWT
|
|
56
|
-
* @returns {Promise<*>}
|
|
57
|
-
*/
|
|
58
|
-
async realTime(params, session) {
|
|
59
|
-
const self = this;
|
|
60
|
-
|
|
61
|
-
try {
|
|
62
|
-
Joi.assert(params, Joi.object().required(), 'Object with params to add notifications');
|
|
63
|
-
Joi.assert(params.userIds, Joi.array().required(), 'OrgId of the user SU');
|
|
64
|
-
Joi.assert(params.message, Joi.object().required(), 'Object with data to send user');
|
|
65
|
-
Joi.assert(session, Joi.string().required(), 'Session, token JWT');
|
|
66
|
-
|
|
67
|
-
const apiCall = self.client.post(`/admin/send/notifications`, params, self._setHeader(session));
|
|
68
|
-
return self._returnData(await apiCall);
|
|
69
|
-
} catch (ex) {
|
|
70
|
-
throw ex;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
76
|
-
* @description Create notification
|
|
77
|
-
* @param {object} params Params to create notification
|
|
78
|
-
* @param {string} params.orgId OrgId of the user SU
|
|
79
|
-
* @param {string} params.userId User to create notification
|
|
80
|
-
* @param {object} params.message Object with data to send user
|
|
81
|
-
* @param {string} session Session, token JWT
|
|
82
|
-
* @return {Promise}
|
|
83
|
-
* @public
|
|
84
|
-
* @async
|
|
85
|
-
* @example
|
|
86
|
-
*
|
|
87
|
-
* const API = require('@docbrasil/api-systemmanager');
|
|
88
|
-
* const api = new API();
|
|
89
|
-
* const params = {
|
|
90
|
-
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
91
|
-
* userId: '55e4a3bd6be6b45210833fae',
|
|
92
|
-
* message: 'Olá como vai tudo bem?'
|
|
93
|
-
* };
|
|
94
|
-
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
95
|
-
* await api.admin.notifications.add(params, session);
|
|
96
|
-
*/
|
|
97
|
-
async add(params, session) {
|
|
98
|
-
const self = this;
|
|
99
|
-
|
|
100
|
-
try {
|
|
101
|
-
Joi.assert(params, Joi.object().required(), 'Object with params to add notifications');
|
|
102
|
-
Joi.assert(params.orgId, Joi.string().required(), 'OrgId of the user SU');
|
|
103
|
-
Joi.assert(params.userId, Joi.string().required(), 'User to create notification');
|
|
104
|
-
Joi.assert(params.message, Joi.object().required(), 'Object with data to send user');
|
|
105
|
-
Joi.assert(session, Joi.string().required(), 'Session, token JWT');
|
|
106
|
-
|
|
107
|
-
const {orgId, ...notificationPayload} = params;
|
|
108
|
-
const apiCall = self.client.post(`/admin/organizations/${orgId}/notifications`, notificationPayload, 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 Search notification using (notificationId or userId)
|
|
118
|
-
* @param {object} params Params to create notification
|
|
119
|
-
* @param {string} params.orgId OrgId of the user SU
|
|
120
|
-
* @param {string} params.id ALERT! Id is userId or id is notificationId
|
|
121
|
-
* @param {string} session Session, token JWT
|
|
122
|
-
* @return {Promise}
|
|
123
|
-
* @public
|
|
124
|
-
* @async
|
|
125
|
-
* @example
|
|
126
|
-
*
|
|
127
|
-
* const API = require('@docbrasil/api-systemmanager');
|
|
128
|
-
* const api = new API();
|
|
129
|
-
* const params = {
|
|
130
|
-
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
131
|
-
* id: '55e4a3bd6be6b45210833fae',
|
|
132
|
-
* };
|
|
133
|
-
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
134
|
-
* await api.admin.notifications.findById(params, session);
|
|
135
|
-
*/
|
|
136
|
-
async findById(params, session) {
|
|
137
|
-
const self = this;
|
|
138
|
-
|
|
139
|
-
try {
|
|
140
|
-
Joi.assert(params, Joi.object().required(), 'Object with params to add notifications');
|
|
141
|
-
Joi.assert(params.orgId, Joi.string().required(), 'OrgId of the user SU');
|
|
142
|
-
Joi.assert(params.id, Joi.string().required(), 'ALERT! Id is userId or id is notificationId');
|
|
143
|
-
Joi.assert(session, Joi.string().required(), 'Session, token JWT');
|
|
144
|
-
|
|
145
|
-
const {orgId, id} = params;
|
|
146
|
-
const apiCall = self.client.get(`/admin/organizations/${orgId}/notifications/${id}`, self._setHeader(session));
|
|
147
|
-
return self._returnData(await apiCall);
|
|
148
|
-
} catch (ex) {
|
|
149
|
-
throw ex;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
155
|
-
* @description Update notification using (notificationId or userId)
|
|
156
|
-
* @param {object} params Params to create notification
|
|
157
|
-
* @param {string} params.orgId OrgId of the user SU
|
|
158
|
-
* @param {string} params.id ALERT! Id is userId or id is notificationId
|
|
159
|
-
* @param {boolean} params.read If message is read true or false
|
|
160
|
-
* @param {string} session Session, token JWT
|
|
161
|
-
* @return {Promise}
|
|
162
|
-
* @public
|
|
163
|
-
* @async
|
|
164
|
-
* @example
|
|
165
|
-
*
|
|
166
|
-
* const API = require('@docbrasil/api-systemmanager');
|
|
167
|
-
* const api = new API();
|
|
168
|
-
* const params = {
|
|
169
|
-
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
170
|
-
* id: '55e4a3bd6be6b45210833fae',
|
|
171
|
-
* read: true
|
|
172
|
-
* };
|
|
173
|
-
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
174
|
-
* await api.admin.notifications.findByIdAndUpdate(params, session);
|
|
175
|
-
*/
|
|
176
|
-
async findByIdAndUpdate(params, session) {
|
|
177
|
-
const self = this;
|
|
178
|
-
|
|
179
|
-
try {
|
|
180
|
-
Joi.assert(params, Joi.object().required(), 'Object with params to add notifications');
|
|
181
|
-
Joi.assert(params.orgId, Joi.string().required(), 'OrgId of the user SU');
|
|
182
|
-
Joi.assert(params.id, Joi.string().required(), 'ALERT! Id is userId or id is notificationId');
|
|
183
|
-
Joi.assert(params.read, Joi.boolean().required(), 'If message is read true or false');
|
|
184
|
-
Joi.assert(session, Joi.string().required(), 'Session, token JWT');
|
|
185
|
-
|
|
186
|
-
const {orgId, id, ...statusPayload} = params;
|
|
187
|
-
const apiCall = self.client.put(`/admin/organizations/${orgId}/notifications/${id}`, statusPayload, self._setHeader(session));
|
|
188
|
-
return self._returnData(await apiCall);
|
|
189
|
-
} catch (ex) {
|
|
190
|
-
throw ex;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
196
|
-
* @description Delete notification using (notificationId or userId)
|
|
197
|
-
* @param {object} params Params to create notification
|
|
198
|
-
* @param {string} params.orgId OrgId of the user SU
|
|
199
|
-
* @param {string} params.id ALERT! Id is userId or id is notificationId
|
|
200
|
-
* @param {string} session Session, token JWT
|
|
201
|
-
* @return {Promise}
|
|
202
|
-
* @public
|
|
203
|
-
* @async
|
|
204
|
-
* @example
|
|
205
|
-
*
|
|
206
|
-
* const API = require('@docbrasil/api-systemmanager');
|
|
207
|
-
* const api = new API();
|
|
208
|
-
* const params = {
|
|
209
|
-
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
210
|
-
* id: '55e4a3bd6be6b45210833fae',
|
|
211
|
-
* };
|
|
212
|
-
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
213
|
-
* await api.admin.notifications.findByIdAndDelete(params, session);
|
|
214
|
-
*/
|
|
215
|
-
async findByIdAndRemove(params, session) {
|
|
216
|
-
const self = this;
|
|
217
|
-
|
|
218
|
-
try {
|
|
219
|
-
Joi.assert(params, Joi.object().required(), 'Object with params to add notifications');
|
|
220
|
-
Joi.assert(params.orgId, Joi.string().required(), 'OrgId of the user SU');
|
|
221
|
-
Joi.assert(params.id, Joi.string().required(), 'ALERT! Id is userId or id is notificationId');
|
|
222
|
-
Joi.assert(session, Joi.string().required(), 'Session, token JWT');
|
|
223
|
-
|
|
224
|
-
const {orgId, id} = params;
|
|
225
|
-
const apiCall = self.client.delete(`/admin/organizations/${orgId}/notifications/${id}`, self._setHeader(session));
|
|
226
|
-
return self._returnData(await apiCall);
|
|
227
|
-
} catch (ex) {
|
|
228
|
-
throw ex;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
export default AdminNotification;
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import Boom from '@hapi/boom';
|
|
3
|
+
import Joi from 'joi';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Admin Class for notification, permission admin
|
|
7
|
+
* @class
|
|
8
|
+
*/
|
|
9
|
+
class AdminNotification {
|
|
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
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @author Augusto Pissarra <abernardo.br@gmail.com>
|
|
22
|
+
* @description Get the return data and check for errors
|
|
23
|
+
* @param {object} retData Response HTTP
|
|
24
|
+
* @return {*}
|
|
25
|
+
* @private
|
|
26
|
+
*/
|
|
27
|
+
_returnData(retData, def = {}) {
|
|
28
|
+
if (retData.status !== 200) {
|
|
29
|
+
return Boom.badRequest(_.get(retData, 'message', 'No error message reported!'))
|
|
30
|
+
} else {
|
|
31
|
+
return _.get(retData, 'data', def);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
37
|
+
* @description Set header with new session
|
|
38
|
+
* @param {string} session Session, token JWT
|
|
39
|
+
* @return {object} header with new session
|
|
40
|
+
* @private
|
|
41
|
+
*/
|
|
42
|
+
_setHeader(session) {
|
|
43
|
+
return {
|
|
44
|
+
headers: {
|
|
45
|
+
authorization: session,
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @description Send real time notification
|
|
52
|
+
* @param {object} params Params to send notification
|
|
53
|
+
* @param {string} params.userIds Users to send notification
|
|
54
|
+
* @param {object} params.message Object with data to send user
|
|
55
|
+
* @param {object} session Session, token JWT
|
|
56
|
+
* @returns {Promise<*>}
|
|
57
|
+
*/
|
|
58
|
+
async realTime(params, session) {
|
|
59
|
+
const self = this;
|
|
60
|
+
|
|
61
|
+
try {
|
|
62
|
+
Joi.assert(params, Joi.object().required(), 'Object with params to add notifications');
|
|
63
|
+
Joi.assert(params.userIds, Joi.array().required(), 'OrgId of the user SU');
|
|
64
|
+
Joi.assert(params.message, Joi.object().required(), 'Object with data to send user');
|
|
65
|
+
Joi.assert(session, Joi.string().required(), 'Session, token JWT');
|
|
66
|
+
|
|
67
|
+
const apiCall = self.client.post(`/admin/send/notifications`, params, self._setHeader(session));
|
|
68
|
+
return self._returnData(await apiCall);
|
|
69
|
+
} catch (ex) {
|
|
70
|
+
throw ex;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
76
|
+
* @description Create notification
|
|
77
|
+
* @param {object} params Params to create notification
|
|
78
|
+
* @param {string} params.orgId OrgId of the user SU
|
|
79
|
+
* @param {string} params.userId User to create notification
|
|
80
|
+
* @param {object} params.message Object with data to send user
|
|
81
|
+
* @param {string} session Session, token JWT
|
|
82
|
+
* @return {Promise}
|
|
83
|
+
* @public
|
|
84
|
+
* @async
|
|
85
|
+
* @example
|
|
86
|
+
*
|
|
87
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
88
|
+
* const api = new API();
|
|
89
|
+
* const params = {
|
|
90
|
+
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
91
|
+
* userId: '55e4a3bd6be6b45210833fae',
|
|
92
|
+
* message: 'Olá como vai tudo bem?'
|
|
93
|
+
* };
|
|
94
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
95
|
+
* await api.admin.notifications.add(params, session);
|
|
96
|
+
*/
|
|
97
|
+
async add(params, session) {
|
|
98
|
+
const self = this;
|
|
99
|
+
|
|
100
|
+
try {
|
|
101
|
+
Joi.assert(params, Joi.object().required(), 'Object with params to add notifications');
|
|
102
|
+
Joi.assert(params.orgId, Joi.string().required(), 'OrgId of the user SU');
|
|
103
|
+
Joi.assert(params.userId, Joi.string().required(), 'User to create notification');
|
|
104
|
+
Joi.assert(params.message, Joi.object().required(), 'Object with data to send user');
|
|
105
|
+
Joi.assert(session, Joi.string().required(), 'Session, token JWT');
|
|
106
|
+
|
|
107
|
+
const {orgId, ...notificationPayload} = params;
|
|
108
|
+
const apiCall = self.client.post(`/admin/organizations/${orgId}/notifications`, notificationPayload, 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 Search notification using (notificationId or userId)
|
|
118
|
+
* @param {object} params Params to create notification
|
|
119
|
+
* @param {string} params.orgId OrgId of the user SU
|
|
120
|
+
* @param {string} params.id ALERT! Id is userId or id is notificationId
|
|
121
|
+
* @param {string} session Session, token JWT
|
|
122
|
+
* @return {Promise}
|
|
123
|
+
* @public
|
|
124
|
+
* @async
|
|
125
|
+
* @example
|
|
126
|
+
*
|
|
127
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
128
|
+
* const api = new API();
|
|
129
|
+
* const params = {
|
|
130
|
+
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
131
|
+
* id: '55e4a3bd6be6b45210833fae',
|
|
132
|
+
* };
|
|
133
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
134
|
+
* await api.admin.notifications.findById(params, session);
|
|
135
|
+
*/
|
|
136
|
+
async findById(params, session) {
|
|
137
|
+
const self = this;
|
|
138
|
+
|
|
139
|
+
try {
|
|
140
|
+
Joi.assert(params, Joi.object().required(), 'Object with params to add notifications');
|
|
141
|
+
Joi.assert(params.orgId, Joi.string().required(), 'OrgId of the user SU');
|
|
142
|
+
Joi.assert(params.id, Joi.string().required(), 'ALERT! Id is userId or id is notificationId');
|
|
143
|
+
Joi.assert(session, Joi.string().required(), 'Session, token JWT');
|
|
144
|
+
|
|
145
|
+
const {orgId, id} = params;
|
|
146
|
+
const apiCall = self.client.get(`/admin/organizations/${orgId}/notifications/${id}`, self._setHeader(session));
|
|
147
|
+
return self._returnData(await apiCall);
|
|
148
|
+
} catch (ex) {
|
|
149
|
+
throw ex;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
155
|
+
* @description Update notification using (notificationId or userId)
|
|
156
|
+
* @param {object} params Params to create notification
|
|
157
|
+
* @param {string} params.orgId OrgId of the user SU
|
|
158
|
+
* @param {string} params.id ALERT! Id is userId or id is notificationId
|
|
159
|
+
* @param {boolean} params.read If message is read true or false
|
|
160
|
+
* @param {string} session Session, token JWT
|
|
161
|
+
* @return {Promise}
|
|
162
|
+
* @public
|
|
163
|
+
* @async
|
|
164
|
+
* @example
|
|
165
|
+
*
|
|
166
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
167
|
+
* const api = new API();
|
|
168
|
+
* const params = {
|
|
169
|
+
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
170
|
+
* id: '55e4a3bd6be6b45210833fae',
|
|
171
|
+
* read: true
|
|
172
|
+
* };
|
|
173
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
174
|
+
* await api.admin.notifications.findByIdAndUpdate(params, session);
|
|
175
|
+
*/
|
|
176
|
+
async findByIdAndUpdate(params, session) {
|
|
177
|
+
const self = this;
|
|
178
|
+
|
|
179
|
+
try {
|
|
180
|
+
Joi.assert(params, Joi.object().required(), 'Object with params to add notifications');
|
|
181
|
+
Joi.assert(params.orgId, Joi.string().required(), 'OrgId of the user SU');
|
|
182
|
+
Joi.assert(params.id, Joi.string().required(), 'ALERT! Id is userId or id is notificationId');
|
|
183
|
+
Joi.assert(params.read, Joi.boolean().required(), 'If message is read true or false');
|
|
184
|
+
Joi.assert(session, Joi.string().required(), 'Session, token JWT');
|
|
185
|
+
|
|
186
|
+
const {orgId, id, ...statusPayload} = params;
|
|
187
|
+
const apiCall = self.client.put(`/admin/organizations/${orgId}/notifications/${id}`, statusPayload, self._setHeader(session));
|
|
188
|
+
return self._returnData(await apiCall);
|
|
189
|
+
} catch (ex) {
|
|
190
|
+
throw ex;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
196
|
+
* @description Delete notification using (notificationId or userId)
|
|
197
|
+
* @param {object} params Params to create notification
|
|
198
|
+
* @param {string} params.orgId OrgId of the user SU
|
|
199
|
+
* @param {string} params.id ALERT! Id is userId or id is notificationId
|
|
200
|
+
* @param {string} session Session, token JWT
|
|
201
|
+
* @return {Promise}
|
|
202
|
+
* @public
|
|
203
|
+
* @async
|
|
204
|
+
* @example
|
|
205
|
+
*
|
|
206
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
207
|
+
* const api = new API();
|
|
208
|
+
* const params = {
|
|
209
|
+
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
210
|
+
* id: '55e4a3bd6be6b45210833fae',
|
|
211
|
+
* };
|
|
212
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
213
|
+
* await api.admin.notifications.findByIdAndDelete(params, session);
|
|
214
|
+
*/
|
|
215
|
+
async findByIdAndRemove(params, session) {
|
|
216
|
+
const self = this;
|
|
217
|
+
|
|
218
|
+
try {
|
|
219
|
+
Joi.assert(params, Joi.object().required(), 'Object with params to add notifications');
|
|
220
|
+
Joi.assert(params.orgId, Joi.string().required(), 'OrgId of the user SU');
|
|
221
|
+
Joi.assert(params.id, Joi.string().required(), 'ALERT! Id is userId or id is notificationId');
|
|
222
|
+
Joi.assert(session, Joi.string().required(), 'Session, token JWT');
|
|
223
|
+
|
|
224
|
+
const {orgId, id} = params;
|
|
225
|
+
const apiCall = self.client.delete(`/admin/organizations/${orgId}/notifications/${id}`, self._setHeader(session));
|
|
226
|
+
return self._returnData(await apiCall);
|
|
227
|
+
} catch (ex) {
|
|
228
|
+
throw ex;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
export default AdminNotification;
|