@docbrasil/api-systemmanager 1.1.77 → 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
@@ -14612,6 +14612,83 @@ class AdminUser {
14612
14612
  }
14613
14613
  }
14614
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
+
14615
14692
  /**
14616
14693
  * @description Request GUID to change the password
14617
14694
  * @param {string} email - User email
@@ -14719,7 +14796,7 @@ class AdminUser {
14719
14796
 
14720
14797
  const payloadToSend = {$project: project, sort};
14721
14798
 
14722
- const apiCall = self._client
14799
+ const apiCall = self.client
14723
14800
  .post(`/admin/users?page=${page}&perPage=${perPage}`, payloadToSend, self._setHeader(session));
14724
14801
 
14725
14802
  return self._returnData(await apiCall);
@@ -14728,6 +14805,291 @@ class AdminUser {
14728
14805
  throw ex;
14729
14806
  }
14730
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
+ }
14731
15093
  }
14732
15094
 
14733
15095
  /**