@docbrasil/api-systemmanager 1.1.76 → 1.1.78
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/list.js +214 -0
- package/api/admin/user.js +363 -1
- package/dist/bundle.cjs +577 -1
- package/dist/bundle.mjs +1 -1
- package/doc/api.md +407 -0
- package/docs/AdminLists.html +1591 -49
- package/docs/AdminUser.html +3164 -292
- package/docs/admin_list.js.html +214 -0
- package/docs/admin_user.js.html +363 -1
- package/package.json +1 -1
package/api/admin/list.js
CHANGED
|
@@ -128,6 +128,220 @@ class AdminLists {
|
|
|
128
128
|
throw ex;
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
134
|
+
* @description Filter organization lists by name
|
|
135
|
+
* @param {object} params Parameters
|
|
136
|
+
* @param {string} params.orgId Organization ID (required)
|
|
137
|
+
* @param {array} [params.names=[]] Array of list names to filter (empty = all)
|
|
138
|
+
* @param {string} session JWT session token
|
|
139
|
+
* @return {Promise<array>} Array of matching org lists sorted by name
|
|
140
|
+
* @public
|
|
141
|
+
* @async
|
|
142
|
+
* @example
|
|
143
|
+
*
|
|
144
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
145
|
+
* const api = new API();
|
|
146
|
+
* const params = { orgId: '5edd11c46b6ce9729c2c297c', names: ['Tags', 'Categorias'] };
|
|
147
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
148
|
+
* const lists = await api.admin.list.filterByName(params, session);
|
|
149
|
+
*/
|
|
150
|
+
async filterByName(params = {}, session) {
|
|
151
|
+
const self = this;
|
|
152
|
+
|
|
153
|
+
try {
|
|
154
|
+
Joi.assert(params, Joi.object().required());
|
|
155
|
+
Joi.assert(params.orgId, Joi.string().required());
|
|
156
|
+
Joi.assert(session, Joi.string().required());
|
|
157
|
+
|
|
158
|
+
const { orgId, names = [] } = params;
|
|
159
|
+
const payload = { names };
|
|
160
|
+
|
|
161
|
+
const apiCall = self._client.post(
|
|
162
|
+
`/admin/organizations/${orgId}/orgtags/filter`,
|
|
163
|
+
payload,
|
|
164
|
+
self._setHeader(session)
|
|
165
|
+
);
|
|
166
|
+
|
|
167
|
+
return self._returnData(await apiCall);
|
|
168
|
+
} catch (ex) {
|
|
169
|
+
throw ex;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
175
|
+
* @description Create a new organization list
|
|
176
|
+
* @param {object} params Parameters
|
|
177
|
+
* @param {string} params.orgId Organization ID (required)
|
|
178
|
+
* @param {string} params.name List name (required)
|
|
179
|
+
* @param {array} [params.list=[]] Initial list items
|
|
180
|
+
* @param {string} session JWT session token
|
|
181
|
+
* @return {Promise<object>} Created list document
|
|
182
|
+
* @public
|
|
183
|
+
* @async
|
|
184
|
+
* @example
|
|
185
|
+
*
|
|
186
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
187
|
+
* const api = new API();
|
|
188
|
+
* const params = { orgId: '5edd11c46b6ce9729c2c297c', name: 'My List', list: [] };
|
|
189
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
190
|
+
* const list = await api.admin.list.create(params, session);
|
|
191
|
+
*/
|
|
192
|
+
async create(params = {}, session) {
|
|
193
|
+
const self = this;
|
|
194
|
+
|
|
195
|
+
try {
|
|
196
|
+
Joi.assert(params, Joi.object().required());
|
|
197
|
+
Joi.assert(params.orgId, Joi.string().required());
|
|
198
|
+
Joi.assert(params.name, Joi.string().required());
|
|
199
|
+
Joi.assert(session, Joi.string().required());
|
|
200
|
+
|
|
201
|
+
const { orgId, name, list = [] } = params;
|
|
202
|
+
const payload = { orgId, name, list };
|
|
203
|
+
|
|
204
|
+
const apiCall = self._client.put(
|
|
205
|
+
`/admin/organizations/${orgId}/orgtags`,
|
|
206
|
+
payload,
|
|
207
|
+
self._setHeader(session)
|
|
208
|
+
);
|
|
209
|
+
|
|
210
|
+
return self._returnData(await apiCall);
|
|
211
|
+
} catch (ex) {
|
|
212
|
+
throw ex;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
218
|
+
* @description Update an organization list
|
|
219
|
+
* @param {object} params Parameters
|
|
220
|
+
* @param {string} params.orgId Organization ID (required)
|
|
221
|
+
* @param {string} params.id List ID (required)
|
|
222
|
+
* @param {object} params.data Fields to update (name, list, etc.)
|
|
223
|
+
* @param {string} session JWT session token
|
|
224
|
+
* @return {Promise<object>} Updated list document
|
|
225
|
+
* @public
|
|
226
|
+
* @async
|
|
227
|
+
* @example
|
|
228
|
+
*
|
|
229
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
230
|
+
* const api = new API();
|
|
231
|
+
* const params = { orgId: '5edd11c46b6ce9729c2c297c', id: '55e4a3bd6be6b45210833fae', data: { name: 'Renamed' } };
|
|
232
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
233
|
+
* const list = await api.admin.list.update(params, session);
|
|
234
|
+
*/
|
|
235
|
+
async update(params = {}, session) {
|
|
236
|
+
const self = this;
|
|
237
|
+
|
|
238
|
+
try {
|
|
239
|
+
Joi.assert(params, Joi.object().required());
|
|
240
|
+
Joi.assert(params.orgId, Joi.string().required());
|
|
241
|
+
Joi.assert(params.id, Joi.string().required());
|
|
242
|
+
Joi.assert(params.data, Joi.object().required());
|
|
243
|
+
Joi.assert(session, Joi.string().required());
|
|
244
|
+
|
|
245
|
+
const { orgId, id, data } = params;
|
|
246
|
+
|
|
247
|
+
const apiCall = self._client.put(
|
|
248
|
+
`/admin/organizations/${orgId}/orgtags/${id}`,
|
|
249
|
+
data,
|
|
250
|
+
self._setHeader(session)
|
|
251
|
+
);
|
|
252
|
+
|
|
253
|
+
return self._returnData(await apiCall);
|
|
254
|
+
} catch (ex) {
|
|
255
|
+
throw ex;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
261
|
+
* @description Remove an organization list
|
|
262
|
+
* @param {object} params Parameters
|
|
263
|
+
* @param {string} params.orgId Organization ID (required)
|
|
264
|
+
* @param {string} params.id List ID to remove (required)
|
|
265
|
+
* @param {string} session JWT session token
|
|
266
|
+
* @return {Promise<object>} Removal confirmation
|
|
267
|
+
* @public
|
|
268
|
+
* @async
|
|
269
|
+
* @example
|
|
270
|
+
*
|
|
271
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
272
|
+
* const api = new API();
|
|
273
|
+
* const params = { orgId: '5edd11c46b6ce9729c2c297c', id: '55e4a3bd6be6b45210833fae' };
|
|
274
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
275
|
+
* await api.admin.list.remove(params, session);
|
|
276
|
+
*/
|
|
277
|
+
async remove(params = {}, session) {
|
|
278
|
+
const self = this;
|
|
279
|
+
|
|
280
|
+
try {
|
|
281
|
+
Joi.assert(params, Joi.object().required());
|
|
282
|
+
Joi.assert(params.orgId, Joi.string().required());
|
|
283
|
+
Joi.assert(params.id, Joi.string().required());
|
|
284
|
+
Joi.assert(session, Joi.string().required());
|
|
285
|
+
|
|
286
|
+
const { orgId, id } = params;
|
|
287
|
+
|
|
288
|
+
const apiCall = self._client.delete(
|
|
289
|
+
`/admin/organizations/${orgId}/orgtags/${id}`,
|
|
290
|
+
self._setHeader(session)
|
|
291
|
+
);
|
|
292
|
+
|
|
293
|
+
return self._returnData(await apiCall);
|
|
294
|
+
} catch (ex) {
|
|
295
|
+
throw ex;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
301
|
+
* @description Update list items of an organization list
|
|
302
|
+
* @param {object} params Parameters
|
|
303
|
+
* @param {string} params.orgId Organization ID (required)
|
|
304
|
+
* @param {string} params.id List ID (required)
|
|
305
|
+
* @param {array} params.list Updated list items array (required)
|
|
306
|
+
* @param {string} session JWT session token
|
|
307
|
+
* @return {Promise<object>} Updated list document
|
|
308
|
+
* @public
|
|
309
|
+
* @async
|
|
310
|
+
* @example
|
|
311
|
+
*
|
|
312
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
313
|
+
* const api = new API();
|
|
314
|
+
* const params = {
|
|
315
|
+
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
316
|
+
* id: '55e4a3bd6be6b45210833fae',
|
|
317
|
+
* list: [{ _id: '1', value: 'Item 1', filter: '', order: 0 }]
|
|
318
|
+
* };
|
|
319
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
320
|
+
* const list = await api.admin.list.updateListItems(params, session);
|
|
321
|
+
*/
|
|
322
|
+
async updateListItems(params = {}, session) {
|
|
323
|
+
const self = this;
|
|
324
|
+
|
|
325
|
+
try {
|
|
326
|
+
Joi.assert(params, Joi.object().required());
|
|
327
|
+
Joi.assert(params.orgId, Joi.string().required());
|
|
328
|
+
Joi.assert(params.id, Joi.string().required());
|
|
329
|
+
Joi.assert(params.list, Joi.array().required());
|
|
330
|
+
Joi.assert(session, Joi.string().required());
|
|
331
|
+
|
|
332
|
+
const { orgId, id, list } = params;
|
|
333
|
+
|
|
334
|
+
const apiCall = self._client.put(
|
|
335
|
+
`/admin/organizations/${orgId}/orgtags/${id}`,
|
|
336
|
+
{ list },
|
|
337
|
+
self._setHeader(session)
|
|
338
|
+
);
|
|
339
|
+
|
|
340
|
+
return self._returnData(await apiCall);
|
|
341
|
+
} catch (ex) {
|
|
342
|
+
throw ex;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
131
345
|
}
|
|
132
346
|
|
|
133
347
|
export default AdminLists;
|
package/api/admin/user.js
CHANGED
|
@@ -211,6 +211,83 @@ class AdminUser {
|
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
+
/**
|
|
215
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
216
|
+
* @description Create a new user
|
|
217
|
+
* @param {object} payload User data to create
|
|
218
|
+
* @param {string} payload.name Full name (required)
|
|
219
|
+
* @param {string} payload.username Username (required)
|
|
220
|
+
* @param {string} payload.email Email (required)
|
|
221
|
+
* @param {string} payload.orgId Primary organization ID (required)
|
|
222
|
+
* @param {array} [payload.orgIds] Organization IDs
|
|
223
|
+
* @param {array} [payload.role=[2]] Security roles
|
|
224
|
+
* @param {string} [payload.password] Initial password
|
|
225
|
+
* @param {string} session JWT session token
|
|
226
|
+
* @return {Promise<object>} Created user document
|
|
227
|
+
* @public
|
|
228
|
+
* @async
|
|
229
|
+
* @example
|
|
230
|
+
*
|
|
231
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
232
|
+
* const api = new API();
|
|
233
|
+
* const payload = {
|
|
234
|
+
* name: 'Maria Silva',
|
|
235
|
+
* username: 'maria.silva',
|
|
236
|
+
* email: 'maria@example.com',
|
|
237
|
+
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
238
|
+
* role: [2]
|
|
239
|
+
* };
|
|
240
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
241
|
+
* await api.admin.user.create(payload, session);
|
|
242
|
+
*/
|
|
243
|
+
async create(payload, session) {
|
|
244
|
+
const self = this;
|
|
245
|
+
|
|
246
|
+
try {
|
|
247
|
+
Joi.assert(payload, Joi.object().required(), 'User data to create');
|
|
248
|
+
Joi.assert(payload.name, Joi.string().required(), 'Full name');
|
|
249
|
+
Joi.assert(payload.username, Joi.string().required(), 'Username');
|
|
250
|
+
Joi.assert(payload.email, Joi.string().email().required(), 'Email');
|
|
251
|
+
Joi.assert(payload.orgId, Joi.string().required(), 'Primary organization ID');
|
|
252
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
253
|
+
|
|
254
|
+
const apiCall = self.client.post('/admin/users', payload, self._setHeader(session));
|
|
255
|
+
return self._returnData(await apiCall);
|
|
256
|
+
} catch (ex) {
|
|
257
|
+
throw ex;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
263
|
+
* @description Remove a user
|
|
264
|
+
* @param {string} userId User ID to remove (required)
|
|
265
|
+
* @param {string} session JWT session token
|
|
266
|
+
* @return {Promise<object>} Removal confirmation
|
|
267
|
+
* @public
|
|
268
|
+
* @async
|
|
269
|
+
* @example
|
|
270
|
+
*
|
|
271
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
272
|
+
* const api = new API();
|
|
273
|
+
* const userId = '55e4a3bd6be6b45210833fae';
|
|
274
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
275
|
+
* await api.admin.user.remove(userId, session);
|
|
276
|
+
*/
|
|
277
|
+
async remove(userId, session) {
|
|
278
|
+
const self = this;
|
|
279
|
+
|
|
280
|
+
try {
|
|
281
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
282
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
283
|
+
|
|
284
|
+
const apiCall = self.client.delete(`/admin/users/${userId}`, self._setHeader(session));
|
|
285
|
+
return self._returnData(await apiCall);
|
|
286
|
+
} catch (ex) {
|
|
287
|
+
throw ex;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
214
291
|
/**
|
|
215
292
|
* @description Request GUID to change the password
|
|
216
293
|
* @param {string} email - User email
|
|
@@ -318,7 +395,7 @@ class AdminUser {
|
|
|
318
395
|
|
|
319
396
|
const payloadToSend = {$project: project, sort};
|
|
320
397
|
|
|
321
|
-
const apiCall = self.
|
|
398
|
+
const apiCall = self.client
|
|
322
399
|
.post(`/admin/users?page=${page}&perPage=${perPage}`, payloadToSend, self._setHeader(session));
|
|
323
400
|
|
|
324
401
|
return self._returnData(await apiCall);
|
|
@@ -327,6 +404,291 @@ class AdminUser {
|
|
|
327
404
|
throw ex;
|
|
328
405
|
}
|
|
329
406
|
}
|
|
407
|
+
|
|
408
|
+
/**
|
|
409
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
410
|
+
* @description Block a user (prevent login)
|
|
411
|
+
* @param {string} userId User ID to block (required)
|
|
412
|
+
* @param {string} session JWT session token
|
|
413
|
+
* @return {Promise<object>} Updated user
|
|
414
|
+
* @public
|
|
415
|
+
* @async
|
|
416
|
+
* @example
|
|
417
|
+
*
|
|
418
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
419
|
+
* const api = new API();
|
|
420
|
+
* const userId = '55e4a3bd6be6b45210833fae';
|
|
421
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
422
|
+
* await api.admin.user.block(userId, session);
|
|
423
|
+
*/
|
|
424
|
+
async block(userId, session) {
|
|
425
|
+
const self = this;
|
|
426
|
+
|
|
427
|
+
try {
|
|
428
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
429
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
430
|
+
|
|
431
|
+
const apiCall = self.client.put(`/admin/users/${userId}/block`, {}, self._setHeader(session));
|
|
432
|
+
return self._returnData(await apiCall);
|
|
433
|
+
} catch (ex) {
|
|
434
|
+
throw ex;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
/**
|
|
439
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
440
|
+
* @description Unblock a user (allow login)
|
|
441
|
+
* @param {string} userId User ID to unblock (required)
|
|
442
|
+
* @param {string} session JWT session token
|
|
443
|
+
* @return {Promise<object>} Updated user
|
|
444
|
+
* @public
|
|
445
|
+
* @async
|
|
446
|
+
* @example
|
|
447
|
+
*
|
|
448
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
449
|
+
* const api = new API();
|
|
450
|
+
* const userId = '55e4a3bd6be6b45210833fae';
|
|
451
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
452
|
+
* await api.admin.user.unblock(userId, session);
|
|
453
|
+
*/
|
|
454
|
+
async unblock(userId, session) {
|
|
455
|
+
const self = this;
|
|
456
|
+
|
|
457
|
+
try {
|
|
458
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
459
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
460
|
+
|
|
461
|
+
const apiCall = self.client.put(`/admin/users/${userId}/unblock`, {}, self._setHeader(session));
|
|
462
|
+
return self._returnData(await apiCall);
|
|
463
|
+
} catch (ex) {
|
|
464
|
+
throw ex;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
470
|
+
* @description Block email notifications for a user
|
|
471
|
+
* @param {string} userId User ID (required)
|
|
472
|
+
* @param {string} session JWT session token
|
|
473
|
+
* @return {Promise<object>} Updated user
|
|
474
|
+
* @public
|
|
475
|
+
* @async
|
|
476
|
+
*/
|
|
477
|
+
async blockEmail(userId, session) {
|
|
478
|
+
const self = this;
|
|
479
|
+
|
|
480
|
+
try {
|
|
481
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
482
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
483
|
+
|
|
484
|
+
const apiCall = self.client.put(`/admin/users/${userId}/blockemail`, {}, self._setHeader(session));
|
|
485
|
+
return self._returnData(await apiCall);
|
|
486
|
+
} catch (ex) {
|
|
487
|
+
throw ex;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
/**
|
|
492
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
493
|
+
* @description Unblock email notifications for a user
|
|
494
|
+
* @param {string} userId User ID (required)
|
|
495
|
+
* @param {string} session JWT session token
|
|
496
|
+
* @return {Promise<object>} Updated user
|
|
497
|
+
* @public
|
|
498
|
+
* @async
|
|
499
|
+
*/
|
|
500
|
+
async unblockEmail(userId, session) {
|
|
501
|
+
const self = this;
|
|
502
|
+
|
|
503
|
+
try {
|
|
504
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
505
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
506
|
+
|
|
507
|
+
const apiCall = self.client.put(`/admin/users/${userId}/unblockemail`, {}, self._setHeader(session));
|
|
508
|
+
return self._returnData(await apiCall);
|
|
509
|
+
} catch (ex) {
|
|
510
|
+
throw ex;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
516
|
+
* @description Update user type classification
|
|
517
|
+
* @param {object} params Parameters
|
|
518
|
+
* @param {string} params.userId User ID (required)
|
|
519
|
+
* @param {string} params.userType New user type (required)
|
|
520
|
+
* @param {string} session JWT session token
|
|
521
|
+
* @return {Promise<object>} Updated user
|
|
522
|
+
* @public
|
|
523
|
+
* @async
|
|
524
|
+
* @example
|
|
525
|
+
*
|
|
526
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
527
|
+
* const api = new API();
|
|
528
|
+
* const params = { userId: '55e4a3bd6be6b45210833fae', userType: 'USER' };
|
|
529
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
530
|
+
* await api.admin.user.updateUserType(params, session);
|
|
531
|
+
*/
|
|
532
|
+
async updateUserType(params, session) {
|
|
533
|
+
const self = this;
|
|
534
|
+
|
|
535
|
+
try {
|
|
536
|
+
Joi.assert(params, Joi.object().required(), 'Parameters');
|
|
537
|
+
Joi.assert(params.userId, Joi.string().required(), 'User ID');
|
|
538
|
+
Joi.assert(params.userType, Joi.string().required(), 'User type');
|
|
539
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
540
|
+
|
|
541
|
+
const { userId, userType } = params;
|
|
542
|
+
const apiCall = self.client.put(`/admin/users/${userId}/type/${userType}`, {}, self._setHeader(session));
|
|
543
|
+
return self._returnData(await apiCall);
|
|
544
|
+
} catch (ex) {
|
|
545
|
+
throw ex;
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
/**
|
|
550
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
551
|
+
* @description Get organization groups with their permissions
|
|
552
|
+
* @param {string} orgId Organization ID (required)
|
|
553
|
+
* @param {string} session JWT session token
|
|
554
|
+
* @return {Promise<array>} Array of groups with permissions
|
|
555
|
+
* @public
|
|
556
|
+
* @async
|
|
557
|
+
* @example
|
|
558
|
+
*
|
|
559
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
560
|
+
* const api = new API();
|
|
561
|
+
* const orgId = '5edd11c46b6ce9729c2c297c';
|
|
562
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
563
|
+
* const groups = await api.admin.user.getGroupsPermissions(orgId, session);
|
|
564
|
+
*/
|
|
565
|
+
async getGroupsPermissions(orgId, session) {
|
|
566
|
+
const self = this;
|
|
567
|
+
|
|
568
|
+
try {
|
|
569
|
+
Joi.assert(orgId, Joi.string().required(), 'Organization ID');
|
|
570
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
571
|
+
|
|
572
|
+
const apiCall = self.client.get(
|
|
573
|
+
`/admin/organizations/${orgId}/orgchart/groups/permissions`,
|
|
574
|
+
self._setHeader(session)
|
|
575
|
+
);
|
|
576
|
+
return self._returnData(await apiCall);
|
|
577
|
+
} catch (ex) {
|
|
578
|
+
throw ex;
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
584
|
+
* @description Update user's group memberships in an organization
|
|
585
|
+
* @param {object} params Parameters
|
|
586
|
+
* @param {string} params.orgId Organization ID (required)
|
|
587
|
+
* @param {string} params.userId User ID (required)
|
|
588
|
+
* @param {array} params.groups Array of group IDs (required)
|
|
589
|
+
* @param {string} session JWT session token
|
|
590
|
+
* @return {Promise<object>} Updated groups
|
|
591
|
+
* @public
|
|
592
|
+
* @async
|
|
593
|
+
* @example
|
|
594
|
+
*
|
|
595
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
596
|
+
* const api = new API();
|
|
597
|
+
* const params = {
|
|
598
|
+
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
599
|
+
* userId: '55e4a3bd6be6b45210833fae',
|
|
600
|
+
* groups: ['groupId1', 'groupId2']
|
|
601
|
+
* };
|
|
602
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
603
|
+
* await api.admin.user.updateUserGroups(params, session);
|
|
604
|
+
*/
|
|
605
|
+
async updateUserGroups(params, session) {
|
|
606
|
+
const self = this;
|
|
607
|
+
|
|
608
|
+
try {
|
|
609
|
+
Joi.assert(params, Joi.object().required(), 'Parameters');
|
|
610
|
+
Joi.assert(params.orgId, Joi.string().required(), 'Organization ID');
|
|
611
|
+
Joi.assert(params.userId, Joi.string().required(), 'User ID');
|
|
612
|
+
Joi.assert(params.groups, Joi.array().required(), 'Group IDs');
|
|
613
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
614
|
+
|
|
615
|
+
const { orgId, userId, groups } = params;
|
|
616
|
+
const apiCall = self.client.put(
|
|
617
|
+
`/admin/organizations/${orgId}/orgchart/groups/${userId}`,
|
|
618
|
+
{ groups },
|
|
619
|
+
self._setHeader(session)
|
|
620
|
+
);
|
|
621
|
+
return self._returnData(await apiCall);
|
|
622
|
+
} catch (ex) {
|
|
623
|
+
throw ex;
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
/**
|
|
628
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
629
|
+
* @description Get organizations the admin user can manage
|
|
630
|
+
* @param {string} session JWT session token
|
|
631
|
+
* @return {Promise<array>} Array of organizations
|
|
632
|
+
* @public
|
|
633
|
+
* @async
|
|
634
|
+
* @example
|
|
635
|
+
*
|
|
636
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
637
|
+
* const api = new API();
|
|
638
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
639
|
+
* const orgs = await api.admin.user.getOrganizations(session);
|
|
640
|
+
*/
|
|
641
|
+
async getOrganizations(session) {
|
|
642
|
+
const self = this;
|
|
643
|
+
|
|
644
|
+
try {
|
|
645
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
646
|
+
|
|
647
|
+
const apiCall = self.client.get('/admin/users/organizations', self._setHeader(session));
|
|
648
|
+
return self._returnData(await apiCall);
|
|
649
|
+
} catch (ex) {
|
|
650
|
+
throw ex;
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
/**
|
|
655
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
656
|
+
* @description Get users belonging to an organization
|
|
657
|
+
* @param {object} params Parameters
|
|
658
|
+
* @param {string} params.orgId Organization ID (required)
|
|
659
|
+
* @param {array} [params.userIds] Optional array of user IDs to filter
|
|
660
|
+
* @param {string} session JWT session token
|
|
661
|
+
* @return {Promise<array>} Array of users with id, name, email, title
|
|
662
|
+
* @public
|
|
663
|
+
* @async
|
|
664
|
+
* @example
|
|
665
|
+
*
|
|
666
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
667
|
+
* const api = new API();
|
|
668
|
+
* const params = { orgId: '5edd11c46b6ce9729c2c297c' };
|
|
669
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
670
|
+
* const users = await api.admin.user.getOrgUsers(params, session);
|
|
671
|
+
*/
|
|
672
|
+
async getOrgUsers(params, session) {
|
|
673
|
+
const self = this;
|
|
674
|
+
|
|
675
|
+
try {
|
|
676
|
+
Joi.assert(params, Joi.object().required(), 'Parameters');
|
|
677
|
+
Joi.assert(params.orgId, Joi.string().required(), 'Organization ID');
|
|
678
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
679
|
+
|
|
680
|
+
const { orgId, userIds } = params;
|
|
681
|
+
let url = `/admin/organizations/${orgId}/orgusers`;
|
|
682
|
+
if (userIds && userIds.length > 0) {
|
|
683
|
+
url += `?userIds=${JSON.stringify(userIds)}`;
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
const apiCall = self.client.get(url, self._setHeader(session));
|
|
687
|
+
return self._returnData(await apiCall);
|
|
688
|
+
} catch (ex) {
|
|
689
|
+
throw ex;
|
|
690
|
+
}
|
|
691
|
+
}
|
|
330
692
|
}
|
|
331
693
|
|
|
332
694
|
export default AdminUser;
|