@docbrasil/api-systemmanager 1.1.77 → 1.1.79
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/user.js +413 -10
- package/dist/bundle.cjs +413 -10
- package/dist/bundle.mjs +1 -1
- package/doc/api.md +284 -0
- package/docs/AdminUser.html +3339 -294
- package/docs/admin_user.js.html +413 -10
- package/package.json +1 -1
package/api/admin/user.js
CHANGED
|
@@ -15,6 +15,46 @@ class AdminUser {
|
|
|
15
15
|
const self = this;
|
|
16
16
|
self.parent = options.parent;
|
|
17
17
|
self.client = self.parent.dispatch.getClient();
|
|
18
|
+
self._orgId = null;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @description Set the organization ID for org-scoped API calls
|
|
23
|
+
* @param {string} orgId - Organization ID
|
|
24
|
+
* @return {AdminUser} this instance for chaining
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
27
|
+
setOrgId(orgId) {
|
|
28
|
+
this._orgId = orgId;
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @description Get the base path for user admin API calls.
|
|
34
|
+
* When orgId is set, uses org-scoped endpoints.
|
|
35
|
+
* When orgId is not set, falls back to legacy admin endpoints.
|
|
36
|
+
* @return {string} base path
|
|
37
|
+
* @private
|
|
38
|
+
*/
|
|
39
|
+
_basePath() {
|
|
40
|
+
if (this._orgId) {
|
|
41
|
+
return `/api/organizations/${this._orgId}/adminusers`;
|
|
42
|
+
}
|
|
43
|
+
return '/admin/users';
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @description Get the base path for org-specific operations (groups, orgchart).
|
|
48
|
+
* When orgId is set, uses org-scoped endpoints.
|
|
49
|
+
* @param {string} orgId - Organization ID for the operation
|
|
50
|
+
* @return {string} base path
|
|
51
|
+
* @private
|
|
52
|
+
*/
|
|
53
|
+
_orgPath(orgId) {
|
|
54
|
+
if (this._orgId) {
|
|
55
|
+
return `/api/organizations/${orgId}/adminusers`;
|
|
56
|
+
}
|
|
57
|
+
return `/admin/organizations/${orgId}`;
|
|
18
58
|
}
|
|
19
59
|
|
|
20
60
|
/**
|
|
@@ -71,7 +111,7 @@ class AdminUser {
|
|
|
71
111
|
Joi.assert(userId, Joi.string().required());
|
|
72
112
|
Joi.assert(session, Joi.string().required());
|
|
73
113
|
|
|
74
|
-
const apiCall = self.client.get(
|
|
114
|
+
const apiCall = self.client.get(`${self._basePath()}/${userId}`, self._setHeader(session));
|
|
75
115
|
return self._returnData(await apiCall);
|
|
76
116
|
} catch (ex) {
|
|
77
117
|
throw ex;
|
|
@@ -142,7 +182,7 @@ class AdminUser {
|
|
|
142
182
|
Joi.assert(session, Joi.string().required());
|
|
143
183
|
|
|
144
184
|
const { userId, ...payload } = params;
|
|
145
|
-
const apiCall = self.client.put(
|
|
185
|
+
const apiCall = self.client.put(`${self._basePath()}/${userId}/password`, payload, self._setHeader(session));
|
|
146
186
|
return self._returnData(await apiCall);
|
|
147
187
|
} catch (ex) {
|
|
148
188
|
throw ex;
|
|
@@ -172,7 +212,7 @@ class AdminUser {
|
|
|
172
212
|
Joi.assert(session, Joi.string().required());
|
|
173
213
|
|
|
174
214
|
const payload = { email };
|
|
175
|
-
const apiCall = self.client.post(
|
|
215
|
+
const apiCall = self.client.post(`${self._basePath()}/email/exist`, payload, self._setHeader(session));
|
|
176
216
|
return self._returnData(await apiCall);
|
|
177
217
|
} catch (ex) {
|
|
178
218
|
throw ex;
|
|
@@ -204,7 +244,84 @@ class AdminUser {
|
|
|
204
244
|
Joi.assert(payload, Joi.object().required(), 'Payload to update');
|
|
205
245
|
Joi.assert(session, Joi.string().required(), 'Session user admin');
|
|
206
246
|
|
|
207
|
-
const apiCall = self.client.put(
|
|
247
|
+
const apiCall = self.client.put(`${self._basePath()}/${userId}`, payload, self._setHeader(session));
|
|
248
|
+
return self._returnData(await apiCall);
|
|
249
|
+
} catch (ex) {
|
|
250
|
+
throw ex;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
256
|
+
* @description Create a new user
|
|
257
|
+
* @param {object} payload User data to create
|
|
258
|
+
* @param {string} payload.name Full name (required)
|
|
259
|
+
* @param {string} payload.username Username (required)
|
|
260
|
+
* @param {string} payload.email Email (required)
|
|
261
|
+
* @param {string} payload.orgId Primary organization ID (required)
|
|
262
|
+
* @param {array} [payload.orgIds] Organization IDs
|
|
263
|
+
* @param {array} [payload.role=[2]] Security roles
|
|
264
|
+
* @param {string} [payload.password] Initial password
|
|
265
|
+
* @param {string} session JWT session token
|
|
266
|
+
* @return {Promise<object>} Created user document
|
|
267
|
+
* @public
|
|
268
|
+
* @async
|
|
269
|
+
* @example
|
|
270
|
+
*
|
|
271
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
272
|
+
* const api = new API();
|
|
273
|
+
* const payload = {
|
|
274
|
+
* name: 'Maria Silva',
|
|
275
|
+
* username: 'maria.silva',
|
|
276
|
+
* email: 'maria@example.com',
|
|
277
|
+
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
278
|
+
* role: [2]
|
|
279
|
+
* };
|
|
280
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
281
|
+
* await api.admin.user.create(payload, session);
|
|
282
|
+
*/
|
|
283
|
+
async create(payload, session) {
|
|
284
|
+
const self = this;
|
|
285
|
+
|
|
286
|
+
try {
|
|
287
|
+
Joi.assert(payload, Joi.object().required(), 'User data to create');
|
|
288
|
+
Joi.assert(payload.name, Joi.string().required(), 'Full name');
|
|
289
|
+
Joi.assert(payload.username, Joi.string().required(), 'Username');
|
|
290
|
+
Joi.assert(payload.email, Joi.string().email().required(), 'Email');
|
|
291
|
+
Joi.assert(payload.orgId, Joi.string().required(), 'Primary organization ID');
|
|
292
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
293
|
+
|
|
294
|
+
const apiCall = self.client.put(self._basePath(), payload, self._setHeader(session));
|
|
295
|
+
return self._returnData(await apiCall);
|
|
296
|
+
} catch (ex) {
|
|
297
|
+
throw ex;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
303
|
+
* @description Remove a user
|
|
304
|
+
* @param {string} userId User ID to remove (required)
|
|
305
|
+
* @param {string} session JWT session token
|
|
306
|
+
* @return {Promise<object>} Removal confirmation
|
|
307
|
+
* @public
|
|
308
|
+
* @async
|
|
309
|
+
* @example
|
|
310
|
+
*
|
|
311
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
312
|
+
* const api = new API();
|
|
313
|
+
* const userId = '55e4a3bd6be6b45210833fae';
|
|
314
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
315
|
+
* await api.admin.user.remove(userId, session);
|
|
316
|
+
*/
|
|
317
|
+
async remove(userId, session) {
|
|
318
|
+
const self = this;
|
|
319
|
+
|
|
320
|
+
try {
|
|
321
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
322
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
323
|
+
|
|
324
|
+
const apiCall = self.client.delete(`${self._basePath()}/${userId}`, self._setHeader(session));
|
|
208
325
|
return self._returnData(await apiCall);
|
|
209
326
|
} catch (ex) {
|
|
210
327
|
throw ex;
|
|
@@ -232,7 +349,7 @@ class AdminUser {
|
|
|
232
349
|
Joi.assert(session, Joi.string().required(), 'Session user admin');
|
|
233
350
|
|
|
234
351
|
const payload = { email };
|
|
235
|
-
const apiCall = self.client.post(
|
|
352
|
+
const apiCall = self.client.post(`${self._basePath()}/change/password`, payload, self._setHeader(session));
|
|
236
353
|
|
|
237
354
|
return self._returnData(await apiCall);
|
|
238
355
|
} catch (ex) {
|
|
@@ -265,7 +382,7 @@ class AdminUser {
|
|
|
265
382
|
Joi.assert(payload.newPassword, Joi.string().required(), 'New password');
|
|
266
383
|
Joi.assert(session, Joi.string().required(), 'Session user admin');
|
|
267
384
|
|
|
268
|
-
const apiCall = self.client.put(
|
|
385
|
+
const apiCall = self.client.put(`${self._basePath()}/change/password`, payload, self._setHeader(session));
|
|
269
386
|
|
|
270
387
|
return self._returnData(await apiCall);
|
|
271
388
|
} catch (ex) {
|
|
@@ -313,13 +430,14 @@ class AdminUser {
|
|
|
313
430
|
page = 1,
|
|
314
431
|
perPage = 200,
|
|
315
432
|
project = PROJECTION_DEFAULT,
|
|
316
|
-
sort = SORT_DEFAULT
|
|
433
|
+
sort = SORT_DEFAULT,
|
|
434
|
+
filter = {}
|
|
317
435
|
} = params;
|
|
318
436
|
|
|
319
|
-
const payloadToSend = {$project: project, sort};
|
|
437
|
+
const payloadToSend = {$project: project, sort, ...filter};
|
|
320
438
|
|
|
321
|
-
const apiCall = self.
|
|
322
|
-
.post(
|
|
439
|
+
const apiCall = self.client
|
|
440
|
+
.post(`${self._basePath()}?page=${page}&perPage=${perPage}`, payloadToSend, self._setHeader(session));
|
|
323
441
|
|
|
324
442
|
return self._returnData(await apiCall);
|
|
325
443
|
|
|
@@ -327,6 +445,291 @@ class AdminUser {
|
|
|
327
445
|
throw ex;
|
|
328
446
|
}
|
|
329
447
|
}
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
451
|
+
* @description Block a user (prevent login)
|
|
452
|
+
* @param {string} userId User ID to block (required)
|
|
453
|
+
* @param {string} session JWT session token
|
|
454
|
+
* @return {Promise<object>} Updated user
|
|
455
|
+
* @public
|
|
456
|
+
* @async
|
|
457
|
+
* @example
|
|
458
|
+
*
|
|
459
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
460
|
+
* const api = new API();
|
|
461
|
+
* const userId = '55e4a3bd6be6b45210833fae';
|
|
462
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
463
|
+
* await api.admin.user.block(userId, session);
|
|
464
|
+
*/
|
|
465
|
+
async block(userId, session) {
|
|
466
|
+
const self = this;
|
|
467
|
+
|
|
468
|
+
try {
|
|
469
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
470
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
471
|
+
|
|
472
|
+
const apiCall = self.client.put(`${self._basePath()}/${userId}/block`, {}, self._setHeader(session));
|
|
473
|
+
return self._returnData(await apiCall);
|
|
474
|
+
} catch (ex) {
|
|
475
|
+
throw ex;
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
/**
|
|
480
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
481
|
+
* @description Unblock a user (allow login)
|
|
482
|
+
* @param {string} userId User ID to unblock (required)
|
|
483
|
+
* @param {string} session JWT session token
|
|
484
|
+
* @return {Promise<object>} Updated user
|
|
485
|
+
* @public
|
|
486
|
+
* @async
|
|
487
|
+
* @example
|
|
488
|
+
*
|
|
489
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
490
|
+
* const api = new API();
|
|
491
|
+
* const userId = '55e4a3bd6be6b45210833fae';
|
|
492
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
493
|
+
* await api.admin.user.unblock(userId, session);
|
|
494
|
+
*/
|
|
495
|
+
async unblock(userId, session) {
|
|
496
|
+
const self = this;
|
|
497
|
+
|
|
498
|
+
try {
|
|
499
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
500
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
501
|
+
|
|
502
|
+
const apiCall = self.client.put(`${self._basePath()}/${userId}/unblock`, {}, self._setHeader(session));
|
|
503
|
+
return self._returnData(await apiCall);
|
|
504
|
+
} catch (ex) {
|
|
505
|
+
throw ex;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
511
|
+
* @description Block email notifications for a user
|
|
512
|
+
* @param {string} userId User ID (required)
|
|
513
|
+
* @param {string} session JWT session token
|
|
514
|
+
* @return {Promise<object>} Updated user
|
|
515
|
+
* @public
|
|
516
|
+
* @async
|
|
517
|
+
*/
|
|
518
|
+
async blockEmail(userId, session) {
|
|
519
|
+
const self = this;
|
|
520
|
+
|
|
521
|
+
try {
|
|
522
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
523
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
524
|
+
|
|
525
|
+
const apiCall = self.client.put(`${self._basePath()}/${userId}/blockemail`, {}, self._setHeader(session));
|
|
526
|
+
return self._returnData(await apiCall);
|
|
527
|
+
} catch (ex) {
|
|
528
|
+
throw ex;
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
/**
|
|
533
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
534
|
+
* @description Unblock email notifications for a user
|
|
535
|
+
* @param {string} userId User ID (required)
|
|
536
|
+
* @param {string} session JWT session token
|
|
537
|
+
* @return {Promise<object>} Updated user
|
|
538
|
+
* @public
|
|
539
|
+
* @async
|
|
540
|
+
*/
|
|
541
|
+
async unblockEmail(userId, session) {
|
|
542
|
+
const self = this;
|
|
543
|
+
|
|
544
|
+
try {
|
|
545
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
546
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
547
|
+
|
|
548
|
+
const apiCall = self.client.put(`${self._basePath()}/${userId}/unblockemail`, {}, self._setHeader(session));
|
|
549
|
+
return self._returnData(await apiCall);
|
|
550
|
+
} catch (ex) {
|
|
551
|
+
throw ex;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
/**
|
|
556
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
557
|
+
* @description Update user type classification
|
|
558
|
+
* @param {object} params Parameters
|
|
559
|
+
* @param {string} params.userId User ID (required)
|
|
560
|
+
* @param {string} params.userType New user type (required)
|
|
561
|
+
* @param {string} session JWT session token
|
|
562
|
+
* @return {Promise<object>} Updated user
|
|
563
|
+
* @public
|
|
564
|
+
* @async
|
|
565
|
+
* @example
|
|
566
|
+
*
|
|
567
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
568
|
+
* const api = new API();
|
|
569
|
+
* const params = { userId: '55e4a3bd6be6b45210833fae', userType: 'USER' };
|
|
570
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
571
|
+
* await api.admin.user.updateUserType(params, session);
|
|
572
|
+
*/
|
|
573
|
+
async updateUserType(params, session) {
|
|
574
|
+
const self = this;
|
|
575
|
+
|
|
576
|
+
try {
|
|
577
|
+
Joi.assert(params, Joi.object().required(), 'Parameters');
|
|
578
|
+
Joi.assert(params.userId, Joi.string().required(), 'User ID');
|
|
579
|
+
Joi.assert(params.userType, Joi.string().required(), 'User type');
|
|
580
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
581
|
+
|
|
582
|
+
const { userId, userType } = params;
|
|
583
|
+
const apiCall = self.client.put(`${self._basePath()}/${userId}/type/${userType}`, {}, self._setHeader(session));
|
|
584
|
+
return self._returnData(await apiCall);
|
|
585
|
+
} catch (ex) {
|
|
586
|
+
throw ex;
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
/**
|
|
591
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
592
|
+
* @description Get organization groups with their permissions
|
|
593
|
+
* @param {string} orgId Organization ID (required)
|
|
594
|
+
* @param {string} session JWT session token
|
|
595
|
+
* @return {Promise<array>} Array of groups with permissions
|
|
596
|
+
* @public
|
|
597
|
+
* @async
|
|
598
|
+
* @example
|
|
599
|
+
*
|
|
600
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
601
|
+
* const api = new API();
|
|
602
|
+
* const orgId = '5edd11c46b6ce9729c2c297c';
|
|
603
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
604
|
+
* const groups = await api.admin.user.getGroupsPermissions(orgId, session);
|
|
605
|
+
*/
|
|
606
|
+
async getGroupsPermissions(orgId, session) {
|
|
607
|
+
const self = this;
|
|
608
|
+
|
|
609
|
+
try {
|
|
610
|
+
Joi.assert(orgId, Joi.string().required(), 'Organization ID');
|
|
611
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
612
|
+
|
|
613
|
+
const apiCall = self.client.get(
|
|
614
|
+
`${self._orgPath(orgId)}/groups/permissions`,
|
|
615
|
+
self._setHeader(session)
|
|
616
|
+
);
|
|
617
|
+
return self._returnData(await apiCall);
|
|
618
|
+
} catch (ex) {
|
|
619
|
+
throw ex;
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
/**
|
|
624
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
625
|
+
* @description Update user's group memberships in an organization
|
|
626
|
+
* @param {object} params Parameters
|
|
627
|
+
* @param {string} params.orgId Organization ID (required)
|
|
628
|
+
* @param {string} params.userId User ID (required)
|
|
629
|
+
* @param {array} params.groups Array of group IDs (required)
|
|
630
|
+
* @param {string} session JWT session token
|
|
631
|
+
* @return {Promise<object>} Updated groups
|
|
632
|
+
* @public
|
|
633
|
+
* @async
|
|
634
|
+
* @example
|
|
635
|
+
*
|
|
636
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
637
|
+
* const api = new API();
|
|
638
|
+
* const params = {
|
|
639
|
+
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
640
|
+
* userId: '55e4a3bd6be6b45210833fae',
|
|
641
|
+
* groups: ['groupId1', 'groupId2']
|
|
642
|
+
* };
|
|
643
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
644
|
+
* await api.admin.user.updateUserGroups(params, session);
|
|
645
|
+
*/
|
|
646
|
+
async updateUserGroups(params, session) {
|
|
647
|
+
const self = this;
|
|
648
|
+
|
|
649
|
+
try {
|
|
650
|
+
Joi.assert(params, Joi.object().required(), 'Parameters');
|
|
651
|
+
Joi.assert(params.orgId, Joi.string().required(), 'Organization ID');
|
|
652
|
+
Joi.assert(params.userId, Joi.string().required(), 'User ID');
|
|
653
|
+
Joi.assert(params.groups, Joi.array().required(), 'Group IDs');
|
|
654
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
655
|
+
|
|
656
|
+
const { orgId, userId, groups } = params;
|
|
657
|
+
const apiCall = self.client.put(
|
|
658
|
+
`${self._orgPath(orgId)}/groups/${userId}`,
|
|
659
|
+
{ groups },
|
|
660
|
+
self._setHeader(session)
|
|
661
|
+
);
|
|
662
|
+
return self._returnData(await apiCall);
|
|
663
|
+
} catch (ex) {
|
|
664
|
+
throw ex;
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
/**
|
|
669
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
670
|
+
* @description Get organizations the admin user can manage
|
|
671
|
+
* @param {string} session JWT session token
|
|
672
|
+
* @return {Promise<array>} Array of organizations
|
|
673
|
+
* @public
|
|
674
|
+
* @async
|
|
675
|
+
* @example
|
|
676
|
+
*
|
|
677
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
678
|
+
* const api = new API();
|
|
679
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
680
|
+
* const orgs = await api.admin.user.getOrganizations(session);
|
|
681
|
+
*/
|
|
682
|
+
async getOrganizations(session) {
|
|
683
|
+
const self = this;
|
|
684
|
+
|
|
685
|
+
try {
|
|
686
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
687
|
+
|
|
688
|
+
const apiCall = self.client.get(`${self._basePath()}/organizations`, self._setHeader(session));
|
|
689
|
+
return self._returnData(await apiCall);
|
|
690
|
+
} catch (ex) {
|
|
691
|
+
throw ex;
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
/**
|
|
696
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
697
|
+
* @description Get users belonging to an organization
|
|
698
|
+
* @param {object} params Parameters
|
|
699
|
+
* @param {string} params.orgId Organization ID (required)
|
|
700
|
+
* @param {array} [params.userIds] Optional array of user IDs to filter
|
|
701
|
+
* @param {string} session JWT session token
|
|
702
|
+
* @return {Promise<array>} Array of users with id, name, email, title
|
|
703
|
+
* @public
|
|
704
|
+
* @async
|
|
705
|
+
* @example
|
|
706
|
+
*
|
|
707
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
708
|
+
* const api = new API();
|
|
709
|
+
* const params = { orgId: '5edd11c46b6ce9729c2c297c' };
|
|
710
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
711
|
+
* const users = await api.admin.user.getOrgUsers(params, session);
|
|
712
|
+
*/
|
|
713
|
+
async getOrgUsers(params, session) {
|
|
714
|
+
const self = this;
|
|
715
|
+
|
|
716
|
+
try {
|
|
717
|
+
Joi.assert(params, Joi.object().required(), 'Parameters');
|
|
718
|
+
Joi.assert(params.orgId, Joi.string().required(), 'Organization ID');
|
|
719
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
720
|
+
|
|
721
|
+
const { orgId, userIds } = params;
|
|
722
|
+
let url = this._orgId ? `${self._orgPath(orgId)}/orgusers` : `/admin/organizations/${orgId}/orgusers`;
|
|
723
|
+
if (userIds && userIds.length > 0) {
|
|
724
|
+
url += `?userIds=${JSON.stringify(userIds)}`;
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
const apiCall = self.client.get(url, self._setHeader(session));
|
|
728
|
+
return self._returnData(await apiCall);
|
|
729
|
+
} catch (ex) {
|
|
730
|
+
throw ex;
|
|
731
|
+
}
|
|
732
|
+
}
|
|
330
733
|
}
|
|
331
734
|
|
|
332
735
|
export default AdminUser;
|