@docbrasil/api-systemmanager 1.1.59 → 1.1.61

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.
Files changed (84) hide show
  1. package/api/user/document.js +1 -1
  2. package/api/user/index.js +3 -0
  3. package/api/user/kanban.js +510 -0
  4. package/api/user/organization.js +1 -1
  5. package/dist/bundle.cjs +506 -2
  6. package/dist/bundle.mjs +1 -1
  7. package/doc/api.md +354 -24
  8. package/docs/Admin.html +1 -1
  9. package/docs/AdminDocuments.html +1 -1
  10. package/docs/AdminForm.html +1 -1
  11. package/docs/AdminLists.html +1 -1
  12. package/docs/AdminMessage.html +1 -1
  13. package/docs/AdminNotification.html +1 -1
  14. package/docs/AdminPlugin.html +1 -1
  15. package/docs/AdminPolicy.html +1 -1
  16. package/docs/AdminProcesses.html +1 -1
  17. package/docs/AdminTask.html +1 -1
  18. package/docs/AdminUser.html +1 -1
  19. package/docs/Application.html +1 -1
  20. package/docs/Chart.html +1 -1
  21. package/docs/Dashboard.html +1 -1
  22. package/docs/Datasource.html +1 -1
  23. package/docs/Dispatch.html +132 -41
  24. package/docs/Documents.html +8 -8
  25. package/docs/External.html +1 -1
  26. package/docs/GeoLocation.html +1 -1
  27. package/docs/Help.html +1 -1
  28. package/docs/Kanban.html +3038 -0
  29. package/docs/Login.html +2 -2
  30. package/docs/MyTasks.html +1 -1
  31. package/docs/MyndAI.html +1 -1
  32. package/docs/Notification.html +1 -1
  33. package/docs/Organization.html +1 -1
  34. package/docs/Page.html +1 -1
  35. package/docs/Process.html +1 -1
  36. package/docs/Register.html +1 -1
  37. package/docs/Session.html +1 -1
  38. package/docs/Settings.html +1 -1
  39. package/docs/Task.html +1 -1
  40. package/docs/TaskAvailable.html +1 -1
  41. package/docs/Updates.html +1 -1
  42. package/docs/User.html +1 -1
  43. package/docs/Users.html +2 -2
  44. package/docs/admin_doctypes.js.html +2 -2
  45. package/docs/admin_document.js.html +2 -2
  46. package/docs/admin_form.js.html +2 -2
  47. package/docs/admin_index.js.html +1 -1
  48. package/docs/admin_list.js.html +2 -2
  49. package/docs/admin_message.js.html +2 -2
  50. package/docs/admin_notification.js.html +2 -2
  51. package/docs/admin_organization.js.html +2 -2
  52. package/docs/admin_plugin.js.html +2 -2
  53. package/docs/admin_policy.js.html +1 -1
  54. package/docs/admin_processes.js.html +2 -2
  55. package/docs/admin_task.js.html +2 -2
  56. package/docs/admin_user.js.html +2 -2
  57. package/docs/ai.js.html +2 -2
  58. package/docs/dispatch.js.html +75 -78
  59. package/docs/external.js.html +2 -2
  60. package/docs/general_geoLocation.js.html +2 -2
  61. package/docs/general_index.js.html +1 -1
  62. package/docs/index.html +1 -1
  63. package/docs/login.js.html +3 -3
  64. package/docs/session.js.html +2 -2
  65. package/docs/user_application.js.html +2 -2
  66. package/docs/user_dashboard.js.html +2 -2
  67. package/docs/user_datasource.js.html +2 -2
  68. package/docs/user_document.js.html +5 -4
  69. package/docs/user_help.js.html +2 -2
  70. package/docs/user_index.js.html +4 -1
  71. package/docs/user_kanban.js.html +627 -0
  72. package/docs/user_my_tasks.js.html +9 -9
  73. package/docs/user_notification.js.html +2 -2
  74. package/docs/user_organization.js.html +3 -3
  75. package/docs/user_page.js.html +2 -2
  76. package/docs/user_process.js.html +14 -14
  77. package/docs/user_register.js.html +2 -2
  78. package/docs/user_settings.js.html +2 -2
  79. package/docs/user_task.js.html +2 -2
  80. package/docs/user_task_available.js.html +2 -2
  81. package/docs/user_updates.js.html +2 -2
  82. package/docs/user_user.js.html +2 -2
  83. package/docs/utils_promises.js.html +1 -1
  84. package/package.json +1 -1
package/dist/bundle.cjs CHANGED
@@ -950,7 +950,7 @@ class Documents {
950
950
  Joi__default["default"].assert(session, Joi__default["default"].string().required().error(new Error('session is required')));
951
951
  const {id, orgId} = params;
952
952
  const apiCall = self._client
953
- .get(`/organizations/${orgId}/documents/${id}/data/DOC`, params, self._setHeader(session));
953
+ .get(`/organizations/${orgId}/documents/${id}/data/DOC`, self._setHeader(session));
954
954
 
955
955
  return self._returnData(await apiCall);
956
956
  } catch (ex) {
@@ -1898,7 +1898,7 @@ class Organization$1 {
1898
1898
 
1899
1899
  const options = {
1900
1900
  method,
1901
- headers: {authorization: session},
1901
+ headers: { Authorization: session },
1902
1902
  url,
1903
1903
  };
1904
1904
 
@@ -11777,6 +11777,509 @@ class Dashboard {
11777
11777
  }
11778
11778
  }
11779
11779
 
11780
+ /**
11781
+ * Class for task, permission user
11782
+ * @class
11783
+ */
11784
+ class Kanban {
11785
+
11786
+ constructor(options) {
11787
+ Joi__default["default"].assert(options, Joi__default["default"].object().required());
11788
+ Joi__default["default"].assert(options.parent, Joi__default["default"].object().required());
11789
+
11790
+ const self = this;
11791
+ self.parent = options.parent;
11792
+ self._client = self.parent.dispatch.getClient();
11793
+ self.available = new TaskAvailable(options);
11794
+ self.mytasks = new MyTasks(options);
11795
+ }
11796
+
11797
+ /**
11798
+ * @author Augusto Pissarra <abernardo.br@gmail.com>
11799
+ * @description Get the return data and check for errors
11800
+ * @param {object} retData Response HTTP
11801
+ * @return {*}
11802
+ * @private
11803
+ */
11804
+ _returnData(retData, def = {}) {
11805
+ if (retData.status !== 200) {
11806
+ return Boom__default["default"].badRequest(___default["default"].get(retData, 'message', 'No error message reported!'))
11807
+ } else {
11808
+ return ___default["default"].get(retData, 'data', def);
11809
+ }
11810
+ }
11811
+
11812
+ /**
11813
+ * @author Myndware <augusto.pissarra@myndware.com>
11814
+ * @description Set header with new session
11815
+ * @param {string} session Session, token JWT
11816
+ * @return {object} header with new session
11817
+ * @private
11818
+ */
11819
+ _setHeader(session) {
11820
+ return {
11821
+ headers: {
11822
+ Authorization: session,
11823
+ }
11824
+ };
11825
+ }
11826
+
11827
+ /**
11828
+ * @author Myndware <augusto.pissarra@myndware.com>
11829
+ * @description Retrieves the Kanban board data for a specified organization process
11830
+ * @param {Object} params - Parameters object
11831
+ * @param {string} params.orgId - Organization id (_id database)
11832
+ * @param {string} params.orgProcessName - The name of the organization process
11833
+ * @param {string} params.flowName - Flow name for the specific kanban flow
11834
+ * @param {string} session - Session, token JWT
11835
+ * @returns {promise} Promise that resolves to Kanban board data
11836
+ * @returns {Object} returns.data - The response data containing:
11837
+ * @returns {boolean} returns.data.success - Indicates if the operation was successful
11838
+ * @returns {Array} returns.data.kanban - Array of status columns with their tasks
11839
+ * @returns {string} returns.data.kanban[].id - Unique identifier for the status column
11840
+ * @returns {string} returns.data.kanban[].title - Display title of the status column
11841
+ * @returns {boolean} returns.data.kanban[].isExpanded - Whether the status column is expanded or collapsed
11842
+ * @returns {Array} returns.data.kanban[].taskList - Array of tasks within this status column
11843
+ * @returns {Array} returns.data.kanban[].statusTagsList - List of status tags available for filtering
11844
+ * @public
11845
+ * @example
11846
+ *
11847
+ * const API = require('@docbrasil/api-systemmanager');
11848
+ * const api = new API();
11849
+ * const params = {
11850
+ * orgId: '55e4a3bd6be6b45210833fae',
11851
+ * orgProcessName: 'employee-onboarding',
11852
+ * flowName: 'approval-flow'
11853
+ * };
11854
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
11855
+ * const kanbanData = await api.user.kanban.get(params, session);
11856
+ *
11857
+ * Expected response structure:
11858
+ * {
11859
+ * success: true,
11860
+ * kanban: [
11861
+ * {
11862
+ * id: 'pending',
11863
+ * title: 'Pending Tasks',
11864
+ * isExpanded: true,
11865
+ * taskList: [
11866
+ * { taskId: '507f1f77bcf86cd799439011', title: 'Review Document', ... },
11867
+ * { taskId: '507f1f77bcf86cd799439012', title: 'Approve Request', ... }
11868
+ * ],
11869
+ * statusTagsList: ['urgent', 'review', 'approved', 'rejected']
11870
+ * },
11871
+ * {
11872
+ * id: 'in-progress',
11873
+ * title: 'In Progress',
11874
+ * isExpanded: true,
11875
+ * taskList: [...],
11876
+ * statusTagsList: ['urgent', 'review', 'approved', 'rejected']
11877
+ * }
11878
+ * ]
11879
+ * }
11880
+ */
11881
+ async get(params, session) {
11882
+ const self = this;
11883
+
11884
+ try {
11885
+ Joi__default["default"].assert(params, Joi__default["default"].object().required(), 'Params to get task');
11886
+ Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required(), 'Organization id (_id database)');
11887
+ Joi__default["default"].assert(params.orgProcessName, Joi__default["default"].string().required(), 'The organization process name');
11888
+ Joi__default["default"].assert(params.flowName, Joi__default["default"].string().required(), 'Flow name for the specific kanban flow');
11889
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token JWT');
11890
+
11891
+ const { orgId, orgProcessName, flowName } = params;
11892
+
11893
+ // Build API endpoint with flowName as part of the path
11894
+ const endpoint = `/organization/${orgId}/kanban/${orgProcessName}/flow/${flowName}`;
11895
+
11896
+ const apiCall = self._client
11897
+ .get(endpoint, self._setHeader(session));
11898
+
11899
+ return self._returnData(await apiCall);
11900
+ } catch (ex) {
11901
+ throw ex;
11902
+ }
11903
+ }
11904
+
11905
+ /**
11906
+ * @author Myndware <augusto.pissarra@myndware.com>
11907
+ * @description Updates the order of a task in its status column on the Kanban board
11908
+ * @param {Object} params - Parameters object
11909
+ * @param {string} params.orgId - Organization id (_id database)
11910
+ * @param {string} params.taskId - The ID of the task to update
11911
+ * @param {number} params.order - The new order position of the task
11912
+ * @param {string} session - Session, token JWT
11913
+ * @returns {promise} Promise that resolves to operation status
11914
+ * @returns {Object} returns.data - The response data containing:
11915
+ * @returns {boolean} returns.data.success - Indicates if the operation was successful
11916
+ * @returns {string} [returns.data.error] - Error message if operation failed
11917
+ * @public
11918
+ * @example
11919
+ *
11920
+ * const API = require('@docbrasil/api-systemmanager');
11921
+ * const api = new API();
11922
+ * const params = {
11923
+ * orgId: '55e4a3bd6be6b45210833fae',
11924
+ * taskId: '507f1f77bcf86cd799439011',
11925
+ * order: 3
11926
+ * };
11927
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
11928
+ * const result = await api.user.kanban.updateTaskOrder(params, session);
11929
+ *
11930
+ * Expected response structure (success):
11931
+ * {
11932
+ * success: true
11933
+ * }
11934
+ *
11935
+ * Expected response structure (error):
11936
+ * {
11937
+ * success: false,
11938
+ * error: "Task not found"
11939
+ * }
11940
+ */
11941
+ async updateTaskOrder(params, session) {
11942
+ const self = this;
11943
+
11944
+ try {
11945
+ Joi__default["default"].assert(params, Joi__default["default"].object().required(), 'Params to update task order');
11946
+ Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required(), 'Organization id (_id database)');
11947
+ Joi__default["default"].assert(params.taskId, Joi__default["default"].string().required(), 'The ID of the task to update');
11948
+ Joi__default["default"].assert(params.order, Joi__default["default"].number().required(), 'The new order position of the task');
11949
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token JWT');
11950
+
11951
+ const { orgId, taskId, order } = params;
11952
+
11953
+ // Build API endpoint for updating task order
11954
+ const endpoint = `/organization/${orgId}/kanban/task/${taskId}/order`;
11955
+
11956
+ const apiCall = self._client
11957
+ .put(endpoint, { order }, self._setHeader(session));
11958
+
11959
+ return self._returnData(await apiCall);
11960
+ } catch (ex) {
11961
+ throw ex;
11962
+ }
11963
+ }
11964
+
11965
+ /**
11966
+ * @author Myndware <augusto.pissarra@myndware.com>
11967
+ * @description Updates the order of multiple tasks in their status columns on the Kanban board
11968
+ * @param {Object} params - Parameters object
11969
+ * @param {string} params.orgId - Organization id (_id database)
11970
+ * @param {Array} params.tasks - Array of task objects containing taskId and order
11971
+ * @param {string} params.tasks[].taskId - The unique identifier of the task to update
11972
+ * @param {number} params.tasks[].order - The new order position for the task
11973
+ * @param {string} session - Session, token JWT
11974
+ * @returns {promise} Promise that resolves to operation status
11975
+ * @returns {Object} returns.data - The response data containing:
11976
+ * @returns {boolean} returns.data.success - Indicates if the operation was successful
11977
+ * @returns {string} [returns.data.error] - Error message if operation failed
11978
+ * @public
11979
+ * @example
11980
+ *
11981
+ * const API = require('@docbrasil/api-systemmanager');
11982
+ * const api = new API();
11983
+ * const params = {
11984
+ * orgId: '55e4a3bd6be6b45210833fae',
11985
+ * tasks: [
11986
+ * { taskId: '507f1f77bcf86cd799439011', order: 1 },
11987
+ * { taskId: '507f1f77bcf86cd799439012', order: 2 },
11988
+ * { taskId: '507f1f77bcf86cd799439013', order: 3 }
11989
+ * ]
11990
+ * };
11991
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
11992
+ * const result = await api.user.kanban.updateTasksOrder(params, session);
11993
+ *
11994
+ * Expected response structure (success):
11995
+ * {
11996
+ * success: true
11997
+ * }
11998
+ *
11999
+ * Expected response structure (error):
12000
+ * {
12001
+ * success: false,
12002
+ * error: "One or more tasks not found"
12003
+ * }
12004
+ */
12005
+ async updateTasksOrder(params, session) {
12006
+ const self = this;
12007
+
12008
+ try {
12009
+ Joi__default["default"].assert(params, Joi__default["default"].object().required(), 'Params to update tasks order');
12010
+ Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required(), 'Organization id (_id database)');
12011
+ Joi__default["default"].assert(params.tasks, Joi__default["default"].array().required(), 'Array of task objects containing taskId and order');
12012
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token JWT');
12013
+
12014
+ const { orgId, tasks } = params;
12015
+
12016
+ // Build API endpoint for updating multiple tasks order
12017
+ const endpoint = `/organization/${orgId}/kanban/task/orders`;
12018
+
12019
+ const apiCall = self._client
12020
+ .put(endpoint, { tasks }, self._setHeader(session));
12021
+
12022
+ return self._returnData(await apiCall);
12023
+ } catch (ex) {
12024
+ throw ex;
12025
+ }
12026
+ }
12027
+
12028
+ /**
12029
+ * @author Myndware <augusto.pissarra@myndware.com>
12030
+ * @description Updates the status of a task on the Kanban board when moved between columns
12031
+ * @param {Object} params - Parameters object
12032
+ * @param {string} params.orgId - Organization id (_id database)
12033
+ * @param {string} params.taskId - The ID of the task to update
12034
+ * @param {string} params.status - The new status value for the task
12035
+ * @param {string} session - Session, token JWT
12036
+ * @returns {promise} Promise that resolves to operation status
12037
+ * @returns {Object} returns.data - The response data containing:
12038
+ * @returns {boolean} returns.data.success - Indicates if the operation was successful
12039
+ * @returns {string} [returns.data.error] - Error message if operation failed
12040
+ * @public
12041
+ * @example
12042
+ *
12043
+ * const API = require('@docbrasil/api-systemmanager');
12044
+ * const api = new API();
12045
+ * const params = {
12046
+ * orgId: '55e4a3bd6be6b45210833fae',
12047
+ * taskId: '507f1f77bcf86cd799439011',
12048
+ * status: 'in-progress'
12049
+ * };
12050
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
12051
+ * const result = await api.user.kanban.updateTaskStatus(params, session);
12052
+ *
12053
+ * Expected response structure (success):
12054
+ * {
12055
+ * success: true
12056
+ * }
12057
+ *
12058
+ * Expected response structure (error):
12059
+ * {
12060
+ * success: false,
12061
+ * error: "Task not found"
12062
+ * }
12063
+ */
12064
+ async updateTaskStatus(params, session) {
12065
+ const self = this;
12066
+
12067
+ try {
12068
+ Joi__default["default"].assert(params, Joi__default["default"].object().required(), 'Params to update task status');
12069
+ Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required(), 'Organization id (_id database)');
12070
+ Joi__default["default"].assert(params.taskId, Joi__default["default"].string().required(), 'The ID of the task to update');
12071
+ Joi__default["default"].assert(params.status, Joi__default["default"].string().required(), 'The new status value for the task');
12072
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token JWT');
12073
+
12074
+ const { orgId, taskId, status } = params;
12075
+
12076
+ // Build API endpoint for updating task status
12077
+ const endpoint = `/organization/${orgId}/kanban/task/${taskId}/status`;
12078
+
12079
+ const apiCall = self._client
12080
+ .put(endpoint, { status }, self._setHeader(session));
12081
+
12082
+ return self._returnData(await apiCall);
12083
+ } catch (ex) {
12084
+ throw ex;
12085
+ }
12086
+ }
12087
+
12088
+ /**
12089
+ * @author Myndware <augusto.pissarra@myndware.com>
12090
+ * @description Adds a tag to a task on the Kanban board without creating duplicates
12091
+ * @param {Object} params - Parameters object
12092
+ * @param {string} params.orgId - Organization id (_id database)
12093
+ * @param {string} params.taskId - The ID of the task to update
12094
+ * @param {string} params.tag - The tag to add to the task
12095
+ * @param {string} session - Session, token JWT
12096
+ * @returns {promise} Promise that resolves to operation status
12097
+ * @returns {Object} returns.data - The response data containing:
12098
+ * @returns {boolean} returns.data.success - Indicates if the operation was successful
12099
+ * @returns {string} [returns.data.error] - Error message if operation failed
12100
+ * @public
12101
+ * @example
12102
+ *
12103
+ * const API = require('@docbrasil/api-systemmanager');
12104
+ * const api = new API();
12105
+ * const params = {
12106
+ * orgId: '55e4a3bd6be6b45210833fae',
12107
+ * taskId: '507f1f77bcf86cd799439011',
12108
+ * tag: 'urgent'
12109
+ * };
12110
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
12111
+ * const result = await api.user.kanban.addTaskTag(params, session);
12112
+ *
12113
+ * Expected response structure (success):
12114
+ * {
12115
+ * success: true
12116
+ * }
12117
+ *
12118
+ * Expected response structure (error):
12119
+ * {
12120
+ * success: false,
12121
+ * error: "Task not found"
12122
+ * }
12123
+ */
12124
+ async addTaskTag(params, session) {
12125
+ const self = this;
12126
+
12127
+ try {
12128
+ Joi__default["default"].assert(params, Joi__default["default"].object().required(), 'Params to add task tag');
12129
+ Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required(), 'Organization id (_id database)');
12130
+ Joi__default["default"].assert(params.taskId, Joi__default["default"].string().required(), 'The ID of the task to update');
12131
+ Joi__default["default"].assert(params.tag, Joi__default["default"].string().required(), 'The tag to add to the task');
12132
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token JWT');
12133
+
12134
+ const { orgId, taskId, tag } = params;
12135
+
12136
+ // Build API endpoint for adding task tag
12137
+ const endpoint = `/organization/${orgId}/kanban/task/${taskId}/tag`;
12138
+
12139
+ const apiCall = self._client
12140
+ .put(endpoint, { tag }, self._setHeader(session));
12141
+
12142
+ return self._returnData(await apiCall);
12143
+ } catch (ex) {
12144
+ throw ex;
12145
+ }
12146
+ }
12147
+
12148
+ /**
12149
+ * @author Myndware <augusto.pissarra@myndware.com>
12150
+ * @description Removes a specific tag from a task on the Kanban board
12151
+ * @param {Object} params - Parameters object
12152
+ * @param {string} params.orgId - Organization id (_id database)
12153
+ * @param {string} params.taskId - The ID of the task to update
12154
+ * @param {string} params.tag - The tag to remove from the task
12155
+ * @param {string} session - Session, token JWT
12156
+ * @returns {promise} Promise that resolves to operation status
12157
+ * @returns {Object} returns.data - The response data containing:
12158
+ * @returns {boolean} returns.data.success - Indicates if the operation was successful
12159
+ * @returns {string} [returns.data.error] - Error message if operation failed
12160
+ * @public
12161
+ * @example
12162
+ *
12163
+ * const API = require('@docbrasil/api-systemmanager');
12164
+ * const api = new API();
12165
+ * const params = {
12166
+ * orgId: '55e4a3bd6be6b45210833fae',
12167
+ * taskId: '507f1f77bcf86cd799439011',
12168
+ * tag: 'urgent'
12169
+ * };
12170
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
12171
+ * const result = await api.user.kanban.removeTaskTag(params, session);
12172
+ *
12173
+ * Expected response structure (success):
12174
+ * {
12175
+ * success: true
12176
+ * }
12177
+ *
12178
+ * Expected response structure (error):
12179
+ * {
12180
+ * success: false,
12181
+ * error: "Task not found"
12182
+ * }
12183
+ */
12184
+ async removeTaskTag(params, session) {
12185
+ const self = this;
12186
+
12187
+ try {
12188
+ Joi__default["default"].assert(params, Joi__default["default"].object().required(), 'Params to remove task tag');
12189
+ Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required(), 'Organization id (_id database)');
12190
+ Joi__default["default"].assert(params.taskId, Joi__default["default"].string().required(), 'The ID of the task to update');
12191
+ Joi__default["default"].assert(params.tag, Joi__default["default"].string().required(), 'The tag to remove from the task');
12192
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token JWT');
12193
+
12194
+ const { orgId, taskId, tag } = params;
12195
+
12196
+ // Build API endpoint for removing task tag
12197
+ const endpoint = `/organization/${orgId}/kanban/task/${taskId}/tag/${tag}`;
12198
+
12199
+ const apiCall = self._client
12200
+ .delete(endpoint, self._setHeader(session));
12201
+
12202
+ return self._returnData(await apiCall);
12203
+ } catch (ex) {
12204
+ throw ex;
12205
+ }
12206
+ }
12207
+
12208
+ /**
12209
+ * @author Myndware <augusto.pissarra@myndware.com>
12210
+ * @description Updates the status list order for a specific flow in an organization process on the Kanban board
12211
+ * Can also be used to update the name, expanded and or the color value of an status of the status list
12212
+ * That is: updates the whole status list
12213
+ * @param {Object} params - Parameters object
12214
+ * @param {string} params.orgId - Organization id (_id database)
12215
+ * @param {string} params.orgProcessName - The name of the organization process
12216
+ * @param {string} params.flowName - The name of the organization process step flowName
12217
+ * @param {Array} params.statusList - The status list with new order
12218
+ * @param {Object} params.statusList[] - Status object configuration
12219
+ * @param {string} params.statusList[].value - The title of the status
12220
+ * @param {boolean} params.statusList[].expanded - If the status column is expanded or not
12221
+ * @param {string} params.statusList[].color - The hexadecimal color code for the status
12222
+ * @param {string} session - Session, token JWT
12223
+ * @returns {promise} Promise that resolves to operation status
12224
+ * @returns {Object} returns.data - The response data containing:
12225
+ * @returns {boolean} returns.data.success - Indicates if the operation was successful
12226
+ * @returns {string} [returns.data.error] - Error message if operation failed
12227
+ * @public
12228
+ * @example
12229
+ *
12230
+ * const API = require('@docbrasil/api-systemmanager');
12231
+ * const api = new API();
12232
+ * const params = {
12233
+ * orgId: '55e4a3bd6be6b45210833fae',
12234
+ * orgProcessName: 'employee-onboarding',
12235
+ * flowName: 'approval-flow',
12236
+ * statusList: [
12237
+ * { value: 'Pending', expanded: true, color: '#FF6B6B' },
12238
+ * { value: 'In Progress', expanded: true, color: '#4ECDC4' },
12239
+ * { value: 'Under Review', expanded: false, color: '#45B7D1' },
12240
+ * { value: 'Completed', expanded: true, color: '#96CEB4' }
12241
+ * ]
12242
+ * };
12243
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
12244
+ * const result = await api.user.kanban.updateStatusList(params, session);
12245
+ *
12246
+ * Expected response structure (success):
12247
+ * {
12248
+ * success: true
12249
+ * }
12250
+ *
12251
+ * Expected response structure (error):
12252
+ * {
12253
+ * success: false,
12254
+ * error: "Organization process not found"
12255
+ * }
12256
+ */
12257
+ async updateStatusList(params, session) {
12258
+ const self = this;
12259
+
12260
+ try {
12261
+ Joi__default["default"].assert(params, Joi__default["default"].object().required(), 'Params to update status list');
12262
+ Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required(), 'Organization id (_id database)');
12263
+ Joi__default["default"].assert(params.orgProcessName, Joi__default["default"].string().required(), 'The name of the organization process');
12264
+ Joi__default["default"].assert(params.flowName, Joi__default["default"].string().required(), 'The name of the organization process step flowName');
12265
+ Joi__default["default"].assert(params.statusList, Joi__default["default"].array().required(), 'The status list with new order');
12266
+ Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token JWT');
12267
+
12268
+ const { orgId, orgProcessName, flowName, statusList } = params;
12269
+
12270
+ // Build API endpoint for updating status list
12271
+ const endpoint = `/organization/${orgId}/kanban/${orgProcessName}/flow/${flowName}`;
12272
+
12273
+ const apiCall = self._client
12274
+ .put(endpoint, { statusList }, self._setHeader(session));
12275
+
12276
+ return self._returnData(await apiCall);
12277
+ } catch (ex) {
12278
+ throw ex;
12279
+ }
12280
+ }
12281
+ }
12282
+
11780
12283
  /**
11781
12284
  * @class API request, user permission level
11782
12285
  */
@@ -11805,6 +12308,7 @@ class Users {
11805
12308
  self.help = new Help(options);
11806
12309
  self.application = new Application(options);
11807
12310
  self.dashboard = new Dashboard(options);
12311
+ self.kanban = new Kanban(options);
11808
12312
  }
11809
12313
  }
11810
12314