@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/dist/bundle.cjs CHANGED
@@ -13883,6 +13883,220 @@ class AdminLists {
13883
13883
  throw ex;
13884
13884
  }
13885
13885
  }
13886
+
13887
+ /**
13888
+ * @author Myndware <augusto.pissarra@myndware.com>
13889
+ * @description Filter organization lists by name
13890
+ * @param {object} params Parameters
13891
+ * @param {string} params.orgId Organization ID (required)
13892
+ * @param {array} [params.names=[]] Array of list names to filter (empty = all)
13893
+ * @param {string} session JWT session token
13894
+ * @return {Promise<array>} Array of matching org lists sorted by name
13895
+ * @public
13896
+ * @async
13897
+ * @example
13898
+ *
13899
+ * const API = require('@docbrasil/api-systemmanager');
13900
+ * const api = new API();
13901
+ * const params = { orgId: '5edd11c46b6ce9729c2c297c', names: ['Tags', 'Categorias'] };
13902
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
13903
+ * const lists = await api.admin.list.filterByName(params, session);
13904
+ */
13905
+ async filterByName(params = {}, session) {
13906
+ const self = this;
13907
+
13908
+ try {
13909
+ Joi__default["default"].assert(params, Joi__default["default"].object().required());
13910
+ Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required());
13911
+ Joi__default["default"].assert(session, Joi__default["default"].string().required());
13912
+
13913
+ const { orgId, names = [] } = params;
13914
+ const payload = { names };
13915
+
13916
+ const apiCall = self._client.post(
13917
+ `/admin/organizations/${orgId}/orgtags/filter`,
13918
+ payload,
13919
+ self._setHeader(session)
13920
+ );
13921
+
13922
+ return self._returnData(await apiCall);
13923
+ } catch (ex) {
13924
+ throw ex;
13925
+ }
13926
+ }
13927
+
13928
+ /**
13929
+ * @author Myndware <augusto.pissarra@myndware.com>
13930
+ * @description Create a new organization list
13931
+ * @param {object} params Parameters
13932
+ * @param {string} params.orgId Organization ID (required)
13933
+ * @param {string} params.name List name (required)
13934
+ * @param {array} [params.list=[]] Initial list items
13935
+ * @param {string} session JWT session token
13936
+ * @return {Promise<object>} Created list document
13937
+ * @public
13938
+ * @async
13939
+ * @example
13940
+ *
13941
+ * const API = require('@docbrasil/api-systemmanager');
13942
+ * const api = new API();
13943
+ * const params = { orgId: '5edd11c46b6ce9729c2c297c', name: 'My List', list: [] };
13944
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
13945
+ * const list = await api.admin.list.create(params, session);
13946
+ */
13947
+ async create(params = {}, session) {
13948
+ const self = this;
13949
+
13950
+ try {
13951
+ Joi__default["default"].assert(params, Joi__default["default"].object().required());
13952
+ Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required());
13953
+ Joi__default["default"].assert(params.name, Joi__default["default"].string().required());
13954
+ Joi__default["default"].assert(session, Joi__default["default"].string().required());
13955
+
13956
+ const { orgId, name, list = [] } = params;
13957
+ const payload = { orgId, name, list };
13958
+
13959
+ const apiCall = self._client.put(
13960
+ `/admin/organizations/${orgId}/orgtags`,
13961
+ payload,
13962
+ self._setHeader(session)
13963
+ );
13964
+
13965
+ return self._returnData(await apiCall);
13966
+ } catch (ex) {
13967
+ throw ex;
13968
+ }
13969
+ }
13970
+
13971
+ /**
13972
+ * @author Myndware <augusto.pissarra@myndware.com>
13973
+ * @description Update an organization list
13974
+ * @param {object} params Parameters
13975
+ * @param {string} params.orgId Organization ID (required)
13976
+ * @param {string} params.id List ID (required)
13977
+ * @param {object} params.data Fields to update (name, list, etc.)
13978
+ * @param {string} session JWT session token
13979
+ * @return {Promise<object>} Updated list document
13980
+ * @public
13981
+ * @async
13982
+ * @example
13983
+ *
13984
+ * const API = require('@docbrasil/api-systemmanager');
13985
+ * const api = new API();
13986
+ * const params = { orgId: '5edd11c46b6ce9729c2c297c', id: '55e4a3bd6be6b45210833fae', data: { name: 'Renamed' } };
13987
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
13988
+ * const list = await api.admin.list.update(params, session);
13989
+ */
13990
+ async update(params = {}, session) {
13991
+ const self = this;
13992
+
13993
+ try {
13994
+ Joi__default["default"].assert(params, Joi__default["default"].object().required());
13995
+ Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required());
13996
+ Joi__default["default"].assert(params.id, Joi__default["default"].string().required());
13997
+ Joi__default["default"].assert(params.data, Joi__default["default"].object().required());
13998
+ Joi__default["default"].assert(session, Joi__default["default"].string().required());
13999
+
14000
+ const { orgId, id, data } = params;
14001
+
14002
+ const apiCall = self._client.put(
14003
+ `/admin/organizations/${orgId}/orgtags/${id}`,
14004
+ data,
14005
+ self._setHeader(session)
14006
+ );
14007
+
14008
+ return self._returnData(await apiCall);
14009
+ } catch (ex) {
14010
+ throw ex;
14011
+ }
14012
+ }
14013
+
14014
+ /**
14015
+ * @author Myndware <augusto.pissarra@myndware.com>
14016
+ * @description Remove an organization list
14017
+ * @param {object} params Parameters
14018
+ * @param {string} params.orgId Organization ID (required)
14019
+ * @param {string} params.id List ID to remove (required)
14020
+ * @param {string} session JWT session token
14021
+ * @return {Promise<object>} Removal confirmation
14022
+ * @public
14023
+ * @async
14024
+ * @example
14025
+ *
14026
+ * const API = require('@docbrasil/api-systemmanager');
14027
+ * const api = new API();
14028
+ * const params = { orgId: '5edd11c46b6ce9729c2c297c', id: '55e4a3bd6be6b45210833fae' };
14029
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
14030
+ * await api.admin.list.remove(params, session);
14031
+ */
14032
+ async remove(params = {}, session) {
14033
+ const self = this;
14034
+
14035
+ try {
14036
+ Joi__default["default"].assert(params, Joi__default["default"].object().required());
14037
+ Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required());
14038
+ Joi__default["default"].assert(params.id, Joi__default["default"].string().required());
14039
+ Joi__default["default"].assert(session, Joi__default["default"].string().required());
14040
+
14041
+ const { orgId, id } = params;
14042
+
14043
+ const apiCall = self._client.delete(
14044
+ `/admin/organizations/${orgId}/orgtags/${id}`,
14045
+ self._setHeader(session)
14046
+ );
14047
+
14048
+ return self._returnData(await apiCall);
14049
+ } catch (ex) {
14050
+ throw ex;
14051
+ }
14052
+ }
14053
+
14054
+ /**
14055
+ * @author Myndware <augusto.pissarra@myndware.com>
14056
+ * @description Update list items of an organization list
14057
+ * @param {object} params Parameters
14058
+ * @param {string} params.orgId Organization ID (required)
14059
+ * @param {string} params.id List ID (required)
14060
+ * @param {array} params.list Updated list items array (required)
14061
+ * @param {string} session JWT session token
14062
+ * @return {Promise<object>} Updated list document
14063
+ * @public
14064
+ * @async
14065
+ * @example
14066
+ *
14067
+ * const API = require('@docbrasil/api-systemmanager');
14068
+ * const api = new API();
14069
+ * const params = {
14070
+ * orgId: '5edd11c46b6ce9729c2c297c',
14071
+ * id: '55e4a3bd6be6b45210833fae',
14072
+ * list: [{ _id: '1', value: 'Item 1', filter: '', order: 0 }]
14073
+ * };
14074
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
14075
+ * const list = await api.admin.list.updateListItems(params, session);
14076
+ */
14077
+ async updateListItems(params = {}, session) {
14078
+ const self = this;
14079
+
14080
+ try {
14081
+ Joi__default["default"].assert(params, Joi__default["default"].object().required());
14082
+ Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required());
14083
+ Joi__default["default"].assert(params.id, Joi__default["default"].string().required());
14084
+ Joi__default["default"].assert(params.list, Joi__default["default"].array().required());
14085
+ Joi__default["default"].assert(session, Joi__default["default"].string().required());
14086
+
14087
+ const { orgId, id, list } = params;
14088
+
14089
+ const apiCall = self._client.put(
14090
+ `/admin/organizations/${orgId}/orgtags/${id}`,
14091
+ { list },
14092
+ self._setHeader(session)
14093
+ );
14094
+
14095
+ return self._returnData(await apiCall);
14096
+ } catch (ex) {
14097
+ throw ex;
14098
+ }
14099
+ }
13886
14100
  }
13887
14101
 
13888
14102
  /**
@@ -14398,6 +14612,83 @@ class AdminUser {
14398
14612
  }
14399
14613
  }
14400
14614
 
14615
+ /**
14616
+ * @author Myndware <augusto.pissarra@myndware.com>
14617
+ * @description Create a new user
14618
+ * @param {object} payload User data to create
14619
+ * @param {string} payload.name Full name (required)
14620
+ * @param {string} payload.username Username (required)
14621
+ * @param {string} payload.email Email (required)
14622
+ * @param {string} payload.orgId Primary organization ID (required)
14623
+ * @param {array} [payload.orgIds] Organization IDs
14624
+ * @param {array} [payload.role=[2]] Security roles
14625
+ * @param {string} [payload.password] Initial password
14626
+ * @param {string} session JWT session token
14627
+ * @return {Promise<object>} Created user document
14628
+ * @public
14629
+ * @async
14630
+ * @example
14631
+ *
14632
+ * const API = require('@docbrasil/api-systemmanager');
14633
+ * const api = new API();
14634
+ * const payload = {
14635
+ * name: 'Maria Silva',
14636
+ * username: 'maria.silva',
14637
+ * email: 'maria@example.com',
14638
+ * orgId: '5edd11c46b6ce9729c2c297c',
14639
+ * role: [2]
14640
+ * };
14641
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
14642
+ * await api.admin.user.create(payload, session);
14643
+ */
14644
+ async create(payload, session) {
14645
+ const self = this;
14646
+
14647
+ try {
14648
+ Joi__default["default"].assert(payload, Joi__default["default"].object().required(), 'User data to create');
14649
+ Joi__default["default"].assert(payload.name, Joi__default["default"].string().required(), 'Full name');
14650
+ Joi__default["default"].assert(payload.username, Joi__default["default"].string().required(), 'Username');
14651
+ Joi__default["default"].assert(payload.email, Joi__default["default"].string().email().required(), 'Email');
14652
+ Joi__default["default"].assert(payload.orgId, Joi__default["default"].string().required(), 'Primary organization ID');
14653
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token');
14654
+
14655
+ const apiCall = self.client.post('/admin/users', payload, self._setHeader(session));
14656
+ return self._returnData(await apiCall);
14657
+ } catch (ex) {
14658
+ throw ex;
14659
+ }
14660
+ }
14661
+
14662
+ /**
14663
+ * @author Myndware <augusto.pissarra@myndware.com>
14664
+ * @description Remove a user
14665
+ * @param {string} userId User ID to remove (required)
14666
+ * @param {string} session JWT session token
14667
+ * @return {Promise<object>} Removal confirmation
14668
+ * @public
14669
+ * @async
14670
+ * @example
14671
+ *
14672
+ * const API = require('@docbrasil/api-systemmanager');
14673
+ * const api = new API();
14674
+ * const userId = '55e4a3bd6be6b45210833fae';
14675
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
14676
+ * await api.admin.user.remove(userId, session);
14677
+ */
14678
+ async remove(userId, session) {
14679
+ const self = this;
14680
+
14681
+ try {
14682
+ Joi__default["default"].assert(userId, Joi__default["default"].string().required(), 'User ID');
14683
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token');
14684
+
14685
+ const apiCall = self.client.delete(`/admin/users/${userId}`, self._setHeader(session));
14686
+ return self._returnData(await apiCall);
14687
+ } catch (ex) {
14688
+ throw ex;
14689
+ }
14690
+ }
14691
+
14401
14692
  /**
14402
14693
  * @description Request GUID to change the password
14403
14694
  * @param {string} email - User email
@@ -14505,7 +14796,7 @@ class AdminUser {
14505
14796
 
14506
14797
  const payloadToSend = {$project: project, sort};
14507
14798
 
14508
- const apiCall = self._client
14799
+ const apiCall = self.client
14509
14800
  .post(`/admin/users?page=${page}&perPage=${perPage}`, payloadToSend, self._setHeader(session));
14510
14801
 
14511
14802
  return self._returnData(await apiCall);
@@ -14514,6 +14805,291 @@ class AdminUser {
14514
14805
  throw ex;
14515
14806
  }
14516
14807
  }
14808
+
14809
+ /**
14810
+ * @author Myndware <augusto.pissarra@myndware.com>
14811
+ * @description Block a user (prevent login)
14812
+ * @param {string} userId User ID to block (required)
14813
+ * @param {string} session JWT session token
14814
+ * @return {Promise<object>} Updated user
14815
+ * @public
14816
+ * @async
14817
+ * @example
14818
+ *
14819
+ * const API = require('@docbrasil/api-systemmanager');
14820
+ * const api = new API();
14821
+ * const userId = '55e4a3bd6be6b45210833fae';
14822
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
14823
+ * await api.admin.user.block(userId, session);
14824
+ */
14825
+ async block(userId, session) {
14826
+ const self = this;
14827
+
14828
+ try {
14829
+ Joi__default["default"].assert(userId, Joi__default["default"].string().required(), 'User ID');
14830
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token');
14831
+
14832
+ const apiCall = self.client.put(`/admin/users/${userId}/block`, {}, self._setHeader(session));
14833
+ return self._returnData(await apiCall);
14834
+ } catch (ex) {
14835
+ throw ex;
14836
+ }
14837
+ }
14838
+
14839
+ /**
14840
+ * @author Myndware <augusto.pissarra@myndware.com>
14841
+ * @description Unblock a user (allow login)
14842
+ * @param {string} userId User ID to unblock (required)
14843
+ * @param {string} session JWT session token
14844
+ * @return {Promise<object>} Updated user
14845
+ * @public
14846
+ * @async
14847
+ * @example
14848
+ *
14849
+ * const API = require('@docbrasil/api-systemmanager');
14850
+ * const api = new API();
14851
+ * const userId = '55e4a3bd6be6b45210833fae';
14852
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
14853
+ * await api.admin.user.unblock(userId, session);
14854
+ */
14855
+ async unblock(userId, session) {
14856
+ const self = this;
14857
+
14858
+ try {
14859
+ Joi__default["default"].assert(userId, Joi__default["default"].string().required(), 'User ID');
14860
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token');
14861
+
14862
+ const apiCall = self.client.put(`/admin/users/${userId}/unblock`, {}, self._setHeader(session));
14863
+ return self._returnData(await apiCall);
14864
+ } catch (ex) {
14865
+ throw ex;
14866
+ }
14867
+ }
14868
+
14869
+ /**
14870
+ * @author Myndware <augusto.pissarra@myndware.com>
14871
+ * @description Block email notifications for a user
14872
+ * @param {string} userId User ID (required)
14873
+ * @param {string} session JWT session token
14874
+ * @return {Promise<object>} Updated user
14875
+ * @public
14876
+ * @async
14877
+ */
14878
+ async blockEmail(userId, session) {
14879
+ const self = this;
14880
+
14881
+ try {
14882
+ Joi__default["default"].assert(userId, Joi__default["default"].string().required(), 'User ID');
14883
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token');
14884
+
14885
+ const apiCall = self.client.put(`/admin/users/${userId}/blockemail`, {}, self._setHeader(session));
14886
+ return self._returnData(await apiCall);
14887
+ } catch (ex) {
14888
+ throw ex;
14889
+ }
14890
+ }
14891
+
14892
+ /**
14893
+ * @author Myndware <augusto.pissarra@myndware.com>
14894
+ * @description Unblock email notifications for a user
14895
+ * @param {string} userId User ID (required)
14896
+ * @param {string} session JWT session token
14897
+ * @return {Promise<object>} Updated user
14898
+ * @public
14899
+ * @async
14900
+ */
14901
+ async unblockEmail(userId, session) {
14902
+ const self = this;
14903
+
14904
+ try {
14905
+ Joi__default["default"].assert(userId, Joi__default["default"].string().required(), 'User ID');
14906
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token');
14907
+
14908
+ const apiCall = self.client.put(`/admin/users/${userId}/unblockemail`, {}, self._setHeader(session));
14909
+ return self._returnData(await apiCall);
14910
+ } catch (ex) {
14911
+ throw ex;
14912
+ }
14913
+ }
14914
+
14915
+ /**
14916
+ * @author Myndware <augusto.pissarra@myndware.com>
14917
+ * @description Update user type classification
14918
+ * @param {object} params Parameters
14919
+ * @param {string} params.userId User ID (required)
14920
+ * @param {string} params.userType New user type (required)
14921
+ * @param {string} session JWT session token
14922
+ * @return {Promise<object>} Updated user
14923
+ * @public
14924
+ * @async
14925
+ * @example
14926
+ *
14927
+ * const API = require('@docbrasil/api-systemmanager');
14928
+ * const api = new API();
14929
+ * const params = { userId: '55e4a3bd6be6b45210833fae', userType: 'USER' };
14930
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
14931
+ * await api.admin.user.updateUserType(params, session);
14932
+ */
14933
+ async updateUserType(params, session) {
14934
+ const self = this;
14935
+
14936
+ try {
14937
+ Joi__default["default"].assert(params, Joi__default["default"].object().required(), 'Parameters');
14938
+ Joi__default["default"].assert(params.userId, Joi__default["default"].string().required(), 'User ID');
14939
+ Joi__default["default"].assert(params.userType, Joi__default["default"].string().required(), 'User type');
14940
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token');
14941
+
14942
+ const { userId, userType } = params;
14943
+ const apiCall = self.client.put(`/admin/users/${userId}/type/${userType}`, {}, self._setHeader(session));
14944
+ return self._returnData(await apiCall);
14945
+ } catch (ex) {
14946
+ throw ex;
14947
+ }
14948
+ }
14949
+
14950
+ /**
14951
+ * @author Myndware <augusto.pissarra@myndware.com>
14952
+ * @description Get organization groups with their permissions
14953
+ * @param {string} orgId Organization ID (required)
14954
+ * @param {string} session JWT session token
14955
+ * @return {Promise<array>} Array of groups with permissions
14956
+ * @public
14957
+ * @async
14958
+ * @example
14959
+ *
14960
+ * const API = require('@docbrasil/api-systemmanager');
14961
+ * const api = new API();
14962
+ * const orgId = '5edd11c46b6ce9729c2c297c';
14963
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
14964
+ * const groups = await api.admin.user.getGroupsPermissions(orgId, session);
14965
+ */
14966
+ async getGroupsPermissions(orgId, session) {
14967
+ const self = this;
14968
+
14969
+ try {
14970
+ Joi__default["default"].assert(orgId, Joi__default["default"].string().required(), 'Organization ID');
14971
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token');
14972
+
14973
+ const apiCall = self.client.get(
14974
+ `/admin/organizations/${orgId}/orgchart/groups/permissions`,
14975
+ self._setHeader(session)
14976
+ );
14977
+ return self._returnData(await apiCall);
14978
+ } catch (ex) {
14979
+ throw ex;
14980
+ }
14981
+ }
14982
+
14983
+ /**
14984
+ * @author Myndware <augusto.pissarra@myndware.com>
14985
+ * @description Update user's group memberships in an organization
14986
+ * @param {object} params Parameters
14987
+ * @param {string} params.orgId Organization ID (required)
14988
+ * @param {string} params.userId User ID (required)
14989
+ * @param {array} params.groups Array of group IDs (required)
14990
+ * @param {string} session JWT session token
14991
+ * @return {Promise<object>} Updated groups
14992
+ * @public
14993
+ * @async
14994
+ * @example
14995
+ *
14996
+ * const API = require('@docbrasil/api-systemmanager');
14997
+ * const api = new API();
14998
+ * const params = {
14999
+ * orgId: '5edd11c46b6ce9729c2c297c',
15000
+ * userId: '55e4a3bd6be6b45210833fae',
15001
+ * groups: ['groupId1', 'groupId2']
15002
+ * };
15003
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
15004
+ * await api.admin.user.updateUserGroups(params, session);
15005
+ */
15006
+ async updateUserGroups(params, session) {
15007
+ const self = this;
15008
+
15009
+ try {
15010
+ Joi__default["default"].assert(params, Joi__default["default"].object().required(), 'Parameters');
15011
+ Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required(), 'Organization ID');
15012
+ Joi__default["default"].assert(params.userId, Joi__default["default"].string().required(), 'User ID');
15013
+ Joi__default["default"].assert(params.groups, Joi__default["default"].array().required(), 'Group IDs');
15014
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token');
15015
+
15016
+ const { orgId, userId, groups } = params;
15017
+ const apiCall = self.client.put(
15018
+ `/admin/organizations/${orgId}/orgchart/groups/${userId}`,
15019
+ { groups },
15020
+ self._setHeader(session)
15021
+ );
15022
+ return self._returnData(await apiCall);
15023
+ } catch (ex) {
15024
+ throw ex;
15025
+ }
15026
+ }
15027
+
15028
+ /**
15029
+ * @author Myndware <augusto.pissarra@myndware.com>
15030
+ * @description Get organizations the admin user can manage
15031
+ * @param {string} session JWT session token
15032
+ * @return {Promise<array>} Array of organizations
15033
+ * @public
15034
+ * @async
15035
+ * @example
15036
+ *
15037
+ * const API = require('@docbrasil/api-systemmanager');
15038
+ * const api = new API();
15039
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
15040
+ * const orgs = await api.admin.user.getOrganizations(session);
15041
+ */
15042
+ async getOrganizations(session) {
15043
+ const self = this;
15044
+
15045
+ try {
15046
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token');
15047
+
15048
+ const apiCall = self.client.get('/admin/users/organizations', self._setHeader(session));
15049
+ return self._returnData(await apiCall);
15050
+ } catch (ex) {
15051
+ throw ex;
15052
+ }
15053
+ }
15054
+
15055
+ /**
15056
+ * @author Myndware <augusto.pissarra@myndware.com>
15057
+ * @description Get users belonging to an organization
15058
+ * @param {object} params Parameters
15059
+ * @param {string} params.orgId Organization ID (required)
15060
+ * @param {array} [params.userIds] Optional array of user IDs to filter
15061
+ * @param {string} session JWT session token
15062
+ * @return {Promise<array>} Array of users with id, name, email, title
15063
+ * @public
15064
+ * @async
15065
+ * @example
15066
+ *
15067
+ * const API = require('@docbrasil/api-systemmanager');
15068
+ * const api = new API();
15069
+ * const params = { orgId: '5edd11c46b6ce9729c2c297c' };
15070
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
15071
+ * const users = await api.admin.user.getOrgUsers(params, session);
15072
+ */
15073
+ async getOrgUsers(params, session) {
15074
+ const self = this;
15075
+
15076
+ try {
15077
+ Joi__default["default"].assert(params, Joi__default["default"].object().required(), 'Parameters');
15078
+ Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required(), 'Organization ID');
15079
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token');
15080
+
15081
+ const { orgId, userIds } = params;
15082
+ let url = `/admin/organizations/${orgId}/orgusers`;
15083
+ if (userIds && userIds.length > 0) {
15084
+ url += `?userIds=${JSON.stringify(userIds)}`;
15085
+ }
15086
+
15087
+ const apiCall = self.client.get(url, self._setHeader(session));
15088
+ return self._returnData(await apiCall);
15089
+ } catch (ex) {
15090
+ throw ex;
15091
+ }
15092
+ }
14517
15093
  }
14518
15094
 
14519
15095
  /**