@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/docs/admin_user.js.html
CHANGED
|
@@ -102,6 +102,46 @@ class AdminUser {
|
|
|
102
102
|
const self = this;
|
|
103
103
|
self.parent = options.parent;
|
|
104
104
|
self.client = self.parent.dispatch.getClient();
|
|
105
|
+
self._orgId = null;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* @description Set the organization ID for org-scoped API calls
|
|
110
|
+
* @param {string} orgId - Organization ID
|
|
111
|
+
* @return {AdminUser} this instance for chaining
|
|
112
|
+
* @public
|
|
113
|
+
*/
|
|
114
|
+
setOrgId(orgId) {
|
|
115
|
+
this._orgId = orgId;
|
|
116
|
+
return this;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* @description Get the base path for user admin API calls.
|
|
121
|
+
* When orgId is set, uses org-scoped endpoints.
|
|
122
|
+
* When orgId is not set, falls back to legacy admin endpoints.
|
|
123
|
+
* @return {string} base path
|
|
124
|
+
* @private
|
|
125
|
+
*/
|
|
126
|
+
_basePath() {
|
|
127
|
+
if (this._orgId) {
|
|
128
|
+
return `/api/organizations/${this._orgId}/adminusers`;
|
|
129
|
+
}
|
|
130
|
+
return '/admin/users';
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* @description Get the base path for org-specific operations (groups, orgchart).
|
|
135
|
+
* When orgId is set, uses org-scoped endpoints.
|
|
136
|
+
* @param {string} orgId - Organization ID for the operation
|
|
137
|
+
* @return {string} base path
|
|
138
|
+
* @private
|
|
139
|
+
*/
|
|
140
|
+
_orgPath(orgId) {
|
|
141
|
+
if (this._orgId) {
|
|
142
|
+
return `/api/organizations/${orgId}/adminusers`;
|
|
143
|
+
}
|
|
144
|
+
return `/admin/organizations/${orgId}`;
|
|
105
145
|
}
|
|
106
146
|
|
|
107
147
|
/**
|
|
@@ -158,7 +198,7 @@ class AdminUser {
|
|
|
158
198
|
Joi.assert(userId, Joi.string().required());
|
|
159
199
|
Joi.assert(session, Joi.string().required());
|
|
160
200
|
|
|
161
|
-
const apiCall = self.client.get(
|
|
201
|
+
const apiCall = self.client.get(`${self._basePath()}/${userId}`, self._setHeader(session));
|
|
162
202
|
return self._returnData(await apiCall);
|
|
163
203
|
} catch (ex) {
|
|
164
204
|
throw ex;
|
|
@@ -229,7 +269,7 @@ class AdminUser {
|
|
|
229
269
|
Joi.assert(session, Joi.string().required());
|
|
230
270
|
|
|
231
271
|
const { userId, ...payload } = params;
|
|
232
|
-
const apiCall = self.client.put(
|
|
272
|
+
const apiCall = self.client.put(`${self._basePath()}/${userId}/password`, payload, self._setHeader(session));
|
|
233
273
|
return self._returnData(await apiCall);
|
|
234
274
|
} catch (ex) {
|
|
235
275
|
throw ex;
|
|
@@ -259,7 +299,7 @@ class AdminUser {
|
|
|
259
299
|
Joi.assert(session, Joi.string().required());
|
|
260
300
|
|
|
261
301
|
const payload = { email };
|
|
262
|
-
const apiCall = self.client.post(
|
|
302
|
+
const apiCall = self.client.post(`${self._basePath()}/email/exist`, payload, self._setHeader(session));
|
|
263
303
|
return self._returnData(await apiCall);
|
|
264
304
|
} catch (ex) {
|
|
265
305
|
throw ex;
|
|
@@ -291,7 +331,84 @@ class AdminUser {
|
|
|
291
331
|
Joi.assert(payload, Joi.object().required(), 'Payload to update');
|
|
292
332
|
Joi.assert(session, Joi.string().required(), 'Session user admin');
|
|
293
333
|
|
|
294
|
-
const apiCall = self.client.put(
|
|
334
|
+
const apiCall = self.client.put(`${self._basePath()}/${userId}`, payload, self._setHeader(session));
|
|
335
|
+
return self._returnData(await apiCall);
|
|
336
|
+
} catch (ex) {
|
|
337
|
+
throw ex;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
/**
|
|
342
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
343
|
+
* @description Create a new user
|
|
344
|
+
* @param {object} payload User data to create
|
|
345
|
+
* @param {string} payload.name Full name (required)
|
|
346
|
+
* @param {string} payload.username Username (required)
|
|
347
|
+
* @param {string} payload.email Email (required)
|
|
348
|
+
* @param {string} payload.orgId Primary organization ID (required)
|
|
349
|
+
* @param {array} [payload.orgIds] Organization IDs
|
|
350
|
+
* @param {array} [payload.role=[2]] Security roles
|
|
351
|
+
* @param {string} [payload.password] Initial password
|
|
352
|
+
* @param {string} session JWT session token
|
|
353
|
+
* @return {Promise<object>} Created user document
|
|
354
|
+
* @public
|
|
355
|
+
* @async
|
|
356
|
+
* @example
|
|
357
|
+
*
|
|
358
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
359
|
+
* const api = new API();
|
|
360
|
+
* const payload = {
|
|
361
|
+
* name: 'Maria Silva',
|
|
362
|
+
* username: 'maria.silva',
|
|
363
|
+
* email: 'maria@example.com',
|
|
364
|
+
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
365
|
+
* role: [2]
|
|
366
|
+
* };
|
|
367
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
368
|
+
* await api.admin.user.create(payload, session);
|
|
369
|
+
*/
|
|
370
|
+
async create(payload, session) {
|
|
371
|
+
const self = this;
|
|
372
|
+
|
|
373
|
+
try {
|
|
374
|
+
Joi.assert(payload, Joi.object().required(), 'User data to create');
|
|
375
|
+
Joi.assert(payload.name, Joi.string().required(), 'Full name');
|
|
376
|
+
Joi.assert(payload.username, Joi.string().required(), 'Username');
|
|
377
|
+
Joi.assert(payload.email, Joi.string().email().required(), 'Email');
|
|
378
|
+
Joi.assert(payload.orgId, Joi.string().required(), 'Primary organization ID');
|
|
379
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
380
|
+
|
|
381
|
+
const apiCall = self.client.put(self._basePath(), payload, self._setHeader(session));
|
|
382
|
+
return self._returnData(await apiCall);
|
|
383
|
+
} catch (ex) {
|
|
384
|
+
throw ex;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
390
|
+
* @description Remove a user
|
|
391
|
+
* @param {string} userId User ID to remove (required)
|
|
392
|
+
* @param {string} session JWT session token
|
|
393
|
+
* @return {Promise<object>} Removal confirmation
|
|
394
|
+
* @public
|
|
395
|
+
* @async
|
|
396
|
+
* @example
|
|
397
|
+
*
|
|
398
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
399
|
+
* const api = new API();
|
|
400
|
+
* const userId = '55e4a3bd6be6b45210833fae';
|
|
401
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
402
|
+
* await api.admin.user.remove(userId, session);
|
|
403
|
+
*/
|
|
404
|
+
async remove(userId, session) {
|
|
405
|
+
const self = this;
|
|
406
|
+
|
|
407
|
+
try {
|
|
408
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
409
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
410
|
+
|
|
411
|
+
const apiCall = self.client.delete(`${self._basePath()}/${userId}`, self._setHeader(session));
|
|
295
412
|
return self._returnData(await apiCall);
|
|
296
413
|
} catch (ex) {
|
|
297
414
|
throw ex;
|
|
@@ -319,7 +436,7 @@ class AdminUser {
|
|
|
319
436
|
Joi.assert(session, Joi.string().required(), 'Session user admin');
|
|
320
437
|
|
|
321
438
|
const payload = { email };
|
|
322
|
-
const apiCall = self.client.post(
|
|
439
|
+
const apiCall = self.client.post(`${self._basePath()}/change/password`, payload, self._setHeader(session));
|
|
323
440
|
|
|
324
441
|
return self._returnData(await apiCall);
|
|
325
442
|
} catch (ex) {
|
|
@@ -352,7 +469,7 @@ class AdminUser {
|
|
|
352
469
|
Joi.assert(payload.newPassword, Joi.string().required(), 'New password');
|
|
353
470
|
Joi.assert(session, Joi.string().required(), 'Session user admin');
|
|
354
471
|
|
|
355
|
-
const apiCall = self.client.put(
|
|
472
|
+
const apiCall = self.client.put(`${self._basePath()}/change/password`, payload, self._setHeader(session));
|
|
356
473
|
|
|
357
474
|
return self._returnData(await apiCall);
|
|
358
475
|
} catch (ex) {
|
|
@@ -400,13 +517,14 @@ class AdminUser {
|
|
|
400
517
|
page = 1,
|
|
401
518
|
perPage = 200,
|
|
402
519
|
project = PROJECTION_DEFAULT,
|
|
403
|
-
sort = SORT_DEFAULT
|
|
520
|
+
sort = SORT_DEFAULT,
|
|
521
|
+
filter = {}
|
|
404
522
|
} = params;
|
|
405
523
|
|
|
406
|
-
const payloadToSend = {$project: project, sort};
|
|
524
|
+
const payloadToSend = {$project: project, sort, ...filter};
|
|
407
525
|
|
|
408
|
-
const apiCall = self.
|
|
409
|
-
.post(
|
|
526
|
+
const apiCall = self.client
|
|
527
|
+
.post(`${self._basePath()}?page=${page}&perPage=${perPage}`, payloadToSend, self._setHeader(session));
|
|
410
528
|
|
|
411
529
|
return self._returnData(await apiCall);
|
|
412
530
|
|
|
@@ -414,6 +532,291 @@ class AdminUser {
|
|
|
414
532
|
throw ex;
|
|
415
533
|
}
|
|
416
534
|
}
|
|
535
|
+
|
|
536
|
+
/**
|
|
537
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
538
|
+
* @description Block a user (prevent login)
|
|
539
|
+
* @param {string} userId User ID to block (required)
|
|
540
|
+
* @param {string} session JWT session token
|
|
541
|
+
* @return {Promise<object>} Updated user
|
|
542
|
+
* @public
|
|
543
|
+
* @async
|
|
544
|
+
* @example
|
|
545
|
+
*
|
|
546
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
547
|
+
* const api = new API();
|
|
548
|
+
* const userId = '55e4a3bd6be6b45210833fae';
|
|
549
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
550
|
+
* await api.admin.user.block(userId, session);
|
|
551
|
+
*/
|
|
552
|
+
async block(userId, session) {
|
|
553
|
+
const self = this;
|
|
554
|
+
|
|
555
|
+
try {
|
|
556
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
557
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
558
|
+
|
|
559
|
+
const apiCall = self.client.put(`${self._basePath()}/${userId}/block`, {}, self._setHeader(session));
|
|
560
|
+
return self._returnData(await apiCall);
|
|
561
|
+
} catch (ex) {
|
|
562
|
+
throw ex;
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
568
|
+
* @description Unblock a user (allow login)
|
|
569
|
+
* @param {string} userId User ID to unblock (required)
|
|
570
|
+
* @param {string} session JWT session token
|
|
571
|
+
* @return {Promise<object>} Updated user
|
|
572
|
+
* @public
|
|
573
|
+
* @async
|
|
574
|
+
* @example
|
|
575
|
+
*
|
|
576
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
577
|
+
* const api = new API();
|
|
578
|
+
* const userId = '55e4a3bd6be6b45210833fae';
|
|
579
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
580
|
+
* await api.admin.user.unblock(userId, session);
|
|
581
|
+
*/
|
|
582
|
+
async unblock(userId, session) {
|
|
583
|
+
const self = this;
|
|
584
|
+
|
|
585
|
+
try {
|
|
586
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
587
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
588
|
+
|
|
589
|
+
const apiCall = self.client.put(`${self._basePath()}/${userId}/unblock`, {}, self._setHeader(session));
|
|
590
|
+
return self._returnData(await apiCall);
|
|
591
|
+
} catch (ex) {
|
|
592
|
+
throw ex;
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
/**
|
|
597
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
598
|
+
* @description Block email notifications for a user
|
|
599
|
+
* @param {string} userId User ID (required)
|
|
600
|
+
* @param {string} session JWT session token
|
|
601
|
+
* @return {Promise<object>} Updated user
|
|
602
|
+
* @public
|
|
603
|
+
* @async
|
|
604
|
+
*/
|
|
605
|
+
async blockEmail(userId, session) {
|
|
606
|
+
const self = this;
|
|
607
|
+
|
|
608
|
+
try {
|
|
609
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
610
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
611
|
+
|
|
612
|
+
const apiCall = self.client.put(`${self._basePath()}/${userId}/blockemail`, {}, self._setHeader(session));
|
|
613
|
+
return self._returnData(await apiCall);
|
|
614
|
+
} catch (ex) {
|
|
615
|
+
throw ex;
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
/**
|
|
620
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
621
|
+
* @description Unblock email notifications for a user
|
|
622
|
+
* @param {string} userId User ID (required)
|
|
623
|
+
* @param {string} session JWT session token
|
|
624
|
+
* @return {Promise<object>} Updated user
|
|
625
|
+
* @public
|
|
626
|
+
* @async
|
|
627
|
+
*/
|
|
628
|
+
async unblockEmail(userId, session) {
|
|
629
|
+
const self = this;
|
|
630
|
+
|
|
631
|
+
try {
|
|
632
|
+
Joi.assert(userId, Joi.string().required(), 'User ID');
|
|
633
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
634
|
+
|
|
635
|
+
const apiCall = self.client.put(`${self._basePath()}/${userId}/unblockemail`, {}, self._setHeader(session));
|
|
636
|
+
return self._returnData(await apiCall);
|
|
637
|
+
} catch (ex) {
|
|
638
|
+
throw ex;
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
/**
|
|
643
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
644
|
+
* @description Update user type classification
|
|
645
|
+
* @param {object} params Parameters
|
|
646
|
+
* @param {string} params.userId User ID (required)
|
|
647
|
+
* @param {string} params.userType New user type (required)
|
|
648
|
+
* @param {string} session JWT session token
|
|
649
|
+
* @return {Promise<object>} Updated user
|
|
650
|
+
* @public
|
|
651
|
+
* @async
|
|
652
|
+
* @example
|
|
653
|
+
*
|
|
654
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
655
|
+
* const api = new API();
|
|
656
|
+
* const params = { userId: '55e4a3bd6be6b45210833fae', userType: 'USER' };
|
|
657
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
658
|
+
* await api.admin.user.updateUserType(params, session);
|
|
659
|
+
*/
|
|
660
|
+
async updateUserType(params, session) {
|
|
661
|
+
const self = this;
|
|
662
|
+
|
|
663
|
+
try {
|
|
664
|
+
Joi.assert(params, Joi.object().required(), 'Parameters');
|
|
665
|
+
Joi.assert(params.userId, Joi.string().required(), 'User ID');
|
|
666
|
+
Joi.assert(params.userType, Joi.string().required(), 'User type');
|
|
667
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
668
|
+
|
|
669
|
+
const { userId, userType } = params;
|
|
670
|
+
const apiCall = self.client.put(`${self._basePath()}/${userId}/type/${userType}`, {}, self._setHeader(session));
|
|
671
|
+
return self._returnData(await apiCall);
|
|
672
|
+
} catch (ex) {
|
|
673
|
+
throw ex;
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
/**
|
|
678
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
679
|
+
* @description Get organization groups with their permissions
|
|
680
|
+
* @param {string} orgId Organization ID (required)
|
|
681
|
+
* @param {string} session JWT session token
|
|
682
|
+
* @return {Promise<array>} Array of groups with permissions
|
|
683
|
+
* @public
|
|
684
|
+
* @async
|
|
685
|
+
* @example
|
|
686
|
+
*
|
|
687
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
688
|
+
* const api = new API();
|
|
689
|
+
* const orgId = '5edd11c46b6ce9729c2c297c';
|
|
690
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
691
|
+
* const groups = await api.admin.user.getGroupsPermissions(orgId, session);
|
|
692
|
+
*/
|
|
693
|
+
async getGroupsPermissions(orgId, session) {
|
|
694
|
+
const self = this;
|
|
695
|
+
|
|
696
|
+
try {
|
|
697
|
+
Joi.assert(orgId, Joi.string().required(), 'Organization ID');
|
|
698
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
699
|
+
|
|
700
|
+
const apiCall = self.client.get(
|
|
701
|
+
`${self._orgPath(orgId)}/groups/permissions`,
|
|
702
|
+
self._setHeader(session)
|
|
703
|
+
);
|
|
704
|
+
return self._returnData(await apiCall);
|
|
705
|
+
} catch (ex) {
|
|
706
|
+
throw ex;
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
/**
|
|
711
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
712
|
+
* @description Update user's group memberships in an organization
|
|
713
|
+
* @param {object} params Parameters
|
|
714
|
+
* @param {string} params.orgId Organization ID (required)
|
|
715
|
+
* @param {string} params.userId User ID (required)
|
|
716
|
+
* @param {array} params.groups Array of group IDs (required)
|
|
717
|
+
* @param {string} session JWT session token
|
|
718
|
+
* @return {Promise<object>} Updated groups
|
|
719
|
+
* @public
|
|
720
|
+
* @async
|
|
721
|
+
* @example
|
|
722
|
+
*
|
|
723
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
724
|
+
* const api = new API();
|
|
725
|
+
* const params = {
|
|
726
|
+
* orgId: '5edd11c46b6ce9729c2c297c',
|
|
727
|
+
* userId: '55e4a3bd6be6b45210833fae',
|
|
728
|
+
* groups: ['groupId1', 'groupId2']
|
|
729
|
+
* };
|
|
730
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
731
|
+
* await api.admin.user.updateUserGroups(params, session);
|
|
732
|
+
*/
|
|
733
|
+
async updateUserGroups(params, session) {
|
|
734
|
+
const self = this;
|
|
735
|
+
|
|
736
|
+
try {
|
|
737
|
+
Joi.assert(params, Joi.object().required(), 'Parameters');
|
|
738
|
+
Joi.assert(params.orgId, Joi.string().required(), 'Organization ID');
|
|
739
|
+
Joi.assert(params.userId, Joi.string().required(), 'User ID');
|
|
740
|
+
Joi.assert(params.groups, Joi.array().required(), 'Group IDs');
|
|
741
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
742
|
+
|
|
743
|
+
const { orgId, userId, groups } = params;
|
|
744
|
+
const apiCall = self.client.put(
|
|
745
|
+
`${self._orgPath(orgId)}/groups/${userId}`,
|
|
746
|
+
{ groups },
|
|
747
|
+
self._setHeader(session)
|
|
748
|
+
);
|
|
749
|
+
return self._returnData(await apiCall);
|
|
750
|
+
} catch (ex) {
|
|
751
|
+
throw ex;
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
/**
|
|
756
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
757
|
+
* @description Get organizations the admin user can manage
|
|
758
|
+
* @param {string} session JWT session token
|
|
759
|
+
* @return {Promise<array>} Array of organizations
|
|
760
|
+
* @public
|
|
761
|
+
* @async
|
|
762
|
+
* @example
|
|
763
|
+
*
|
|
764
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
765
|
+
* const api = new API();
|
|
766
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
767
|
+
* const orgs = await api.admin.user.getOrganizations(session);
|
|
768
|
+
*/
|
|
769
|
+
async getOrganizations(session) {
|
|
770
|
+
const self = this;
|
|
771
|
+
|
|
772
|
+
try {
|
|
773
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
774
|
+
|
|
775
|
+
const apiCall = self.client.get(`${self._basePath()}/organizations`, self._setHeader(session));
|
|
776
|
+
return self._returnData(await apiCall);
|
|
777
|
+
} catch (ex) {
|
|
778
|
+
throw ex;
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
/**
|
|
783
|
+
* @author Myndware <augusto.pissarra@myndware.com>
|
|
784
|
+
* @description Get users belonging to an organization
|
|
785
|
+
* @param {object} params Parameters
|
|
786
|
+
* @param {string} params.orgId Organization ID (required)
|
|
787
|
+
* @param {array} [params.userIds] Optional array of user IDs to filter
|
|
788
|
+
* @param {string} session JWT session token
|
|
789
|
+
* @return {Promise<array>} Array of users with id, name, email, title
|
|
790
|
+
* @public
|
|
791
|
+
* @async
|
|
792
|
+
* @example
|
|
793
|
+
*
|
|
794
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
795
|
+
* const api = new API();
|
|
796
|
+
* const params = { orgId: '5edd11c46b6ce9729c2c297c' };
|
|
797
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
798
|
+
* const users = await api.admin.user.getOrgUsers(params, session);
|
|
799
|
+
*/
|
|
800
|
+
async getOrgUsers(params, session) {
|
|
801
|
+
const self = this;
|
|
802
|
+
|
|
803
|
+
try {
|
|
804
|
+
Joi.assert(params, Joi.object().required(), 'Parameters');
|
|
805
|
+
Joi.assert(params.orgId, Joi.string().required(), 'Organization ID');
|
|
806
|
+
Joi.assert(session, Joi.string().required(), 'Session token');
|
|
807
|
+
|
|
808
|
+
const { orgId, userIds } = params;
|
|
809
|
+
let url = this._orgId ? `${self._orgPath(orgId)}/orgusers` : `/admin/organizations/${orgId}/orgusers`;
|
|
810
|
+
if (userIds && userIds.length > 0) {
|
|
811
|
+
url += `?userIds=${JSON.stringify(userIds)}`;
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
const apiCall = self.client.get(url, self._setHeader(session));
|
|
815
|
+
return self._returnData(await apiCall);
|
|
816
|
+
} catch (ex) {
|
|
817
|
+
throw ex;
|
|
818
|
+
}
|
|
819
|
+
}
|
|
417
820
|
}
|
|
418
821
|
|
|
419
822
|
export default AdminUser;
|
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.
|
|
4
|
+
"version": "1.1.79",
|
|
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",
|