@docbrasil/api-systemmanager 1.1.60 → 1.1.62
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/user/index.js +3 -0
- package/api/user/kanban.js +510 -0
- package/dist/bundle.cjs +504 -0
- package/dist/bundle.mjs +1 -1
- package/doc/api.md +354 -24
- package/docs/Admin.html +1 -1
- package/docs/AdminDocuments.html +1 -1
- package/docs/AdminForm.html +1 -1
- package/docs/AdminLists.html +1 -1
- package/docs/AdminMessage.html +1 -1
- package/docs/AdminNotification.html +1 -1
- package/docs/AdminPlugin.html +1 -1
- package/docs/AdminPolicy.html +1 -1
- package/docs/AdminProcesses.html +1 -1
- package/docs/AdminTask.html +1 -1
- package/docs/AdminUser.html +1 -1
- package/docs/Application.html +1 -1
- package/docs/Chart.html +1 -1
- package/docs/Dashboard.html +1 -1
- package/docs/Datasource.html +1 -1
- package/docs/Dispatch.html +132 -41
- package/docs/Documents.html +8 -8
- package/docs/External.html +1 -1
- package/docs/GeoLocation.html +1 -1
- package/docs/Help.html +1 -1
- package/docs/Kanban.html +3038 -0
- package/docs/Login.html +2 -2
- package/docs/MyTasks.html +1 -1
- package/docs/MyndAI.html +1 -1
- package/docs/Notification.html +1 -1
- package/docs/Organization.html +1 -1
- package/docs/Page.html +1 -1
- package/docs/Process.html +1 -1
- package/docs/Register.html +1 -1
- package/docs/Session.html +1 -1
- package/docs/Settings.html +1 -1
- package/docs/Task.html +1 -1
- package/docs/TaskAvailable.html +1 -1
- package/docs/Updates.html +1 -1
- package/docs/User.html +1 -1
- package/docs/Users.html +2 -2
- package/docs/admin_doctypes.js.html +2 -2
- package/docs/admin_document.js.html +2 -2
- package/docs/admin_form.js.html +2 -2
- package/docs/admin_index.js.html +1 -1
- package/docs/admin_list.js.html +2 -2
- package/docs/admin_message.js.html +2 -2
- package/docs/admin_notification.js.html +2 -2
- package/docs/admin_organization.js.html +2 -2
- package/docs/admin_plugin.js.html +2 -2
- package/docs/admin_policy.js.html +1 -1
- package/docs/admin_processes.js.html +2 -2
- package/docs/admin_task.js.html +2 -2
- package/docs/admin_user.js.html +2 -2
- package/docs/ai.js.html +2 -2
- package/docs/dispatch.js.html +75 -78
- package/docs/external.js.html +2 -2
- package/docs/general_geoLocation.js.html +2 -2
- package/docs/general_index.js.html +1 -1
- package/docs/index.html +1 -1
- package/docs/login.js.html +3 -3
- package/docs/session.js.html +2 -2
- package/docs/user_application.js.html +2 -2
- package/docs/user_dashboard.js.html +2 -2
- package/docs/user_datasource.js.html +2 -2
- package/docs/user_document.js.html +5 -4
- package/docs/user_help.js.html +2 -2
- package/docs/user_index.js.html +4 -1
- package/docs/user_kanban.js.html +627 -0
- package/docs/user_my_tasks.js.html +9 -9
- package/docs/user_notification.js.html +2 -2
- package/docs/user_organization.js.html +3 -3
- package/docs/user_page.js.html +2 -2
- package/docs/user_process.js.html +14 -14
- package/docs/user_register.js.html +2 -2
- package/docs/user_settings.js.html +2 -2
- package/docs/user_task.js.html +2 -2
- package/docs/user_task_available.js.html +2 -2
- package/docs/user_updates.js.html +2 -2
- package/docs/user_user.js.html +2 -2
- package/docs/utils_promises.js.html +1 -1
- package/package.json +1 -1
package/dist/bundle.cjs
CHANGED
|
@@ -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.flowId - Flow id 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
|
+
* flowId: 'Task_16888el'
|
|
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.flowId, Joi__default["default"].string().required(), 'Flow id for the specific kanban flow');
|
|
11889
|
+
Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token JWT');
|
|
11890
|
+
|
|
11891
|
+
const { orgId, orgProcessName, flowId } = params;
|
|
11892
|
+
|
|
11893
|
+
// Build API endpoint with flowName as part of the path
|
|
11894
|
+
const endpoint = `/organization/${orgId}/kanban/${orgProcessName}/flow/${flowId}`;
|
|
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
|
|