UNPKG

clickup_api

Version:

No oficial module for ClickUp API

203 lines (195 loc) 4.82 kB
const Requests = require("../utils/requests"); const genParams = require("../utils/params"); var Tasks = function (token, request) { this.token = token; this.request = request; }; /** * Create a Task * @param {String} list_id List ID where task be created * @param {JSON} data Body request for Task */ Tasks.prototype.create_task = function (list_id, data) { var token = this.token; var request = this.request; return new Promise(async function (resolve, reject) { try { var res = await request.https_clickupapi_post( `/api/v2/list/${list_id}/task`, data, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Update a Task * @param {String} task_id Task ID to be updated * @param {JSON} data Body request for update */ Tasks.prototype.update_task = function (task_id, data) { var token = this.token; var request = this.request; return new Promise(async function (resolve, reject) { try { var res = await request.https_clickupapi_put( `/api/v2/task/${task_id}`, data, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Delete a Task * @param {String} task_id Task ID to be deleted */ Tasks.prototype.delete_task = function (task_id) { var token = this.token; var request = this.request; return new Promise(async function (resolve, reject) { try { var res = await request.https_clickupapi_delete( `/api/v2/task/${task_id}`, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Get info about a Task * @param {String} task_id Task ID */ Tasks.prototype.get_task = function (params) { var token = this.token; var request = this.request; return new Promise(async function (resolve, reject) { try { let param = genParams(params, ["task_id"], ["task_id"]); var res = await request.https_clickupapi_get( `/api/v2/task/${params.task_id}${param}`, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Get Tasks * @param {JSON} params Request parameters in JSON format */ Tasks.prototype.get_tasks = function (params) { var token = this.token; var request = this.request; return new Promise(async function (resolve, reject) { try { let param = genParams(params, ["list_id"], ["list_id"]); var res = await request.https_clickupapi_get( `/api/v2/list/${params.list_id}/task${param}`, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Get Filtered Team Tasks * @param {JSON} params Request parameters in JSON format */ Tasks.prototype.get_filtered_team_tasks = function (params) { var token = this.token; var request = this.request; return new Promise(async function (resolve, reject) { try { let param = genParams(params, ["team_Id"], ["team_Id"]); var res = await request.https_clickupapi_get( `/api/v2/team/${params.team_Id}/task${param}`, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Get Task's Time in Status * @param {JSON} params Request parameters in JSON format */ Tasks.prototype.get_tasks_time_in_status = function (params) { var token = this.token; var request = this.request; return new Promise(async function (resolve, reject) { try { let param = genParams(params, ["task_id"], ["task_id"]); var res = await request.https_clickupapi_get( `/api/v2/task/${params.task_id}/time_in_status${param}`, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Get Bulk Task's Time in Status * @param {JSON} params Request parameters in JSON format */ Tasks.prototype.get_bulk_tasks_time_in_status = function (params) { // If thers some bug, is because i can't test in my plan :( var token = this.token; var request = this.request; return new Promise(async function (resolve, reject) { try { let param = genParams(params, ["task_ids"], ["task_ids"]); let tasks_ids = "?"; params["task_ids"].forEach((e) => { tasks_ids += `task_ids=${e}&`; }); tasks_ids = tasks_ids.slice(0, -1); param = param.replace("?", ""); var res = await request.https_clickupapi_get( `/api/v2/task/bulk_time_in_status/task_ids${tasks_ids}${param}`, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Get Tasks from a team * @param {JSON} params Request parameters in JSON format */ Tasks.prototype.get_team_tasks = function (params) { var token = this.token; var request = this.request; return new Promise(async function (resolve, reject) { try { let param = genParams(params, ["list_id", "archived"]); var res = await request.https_clickupapi_get( `/api/v2/team/${params.team_id}/task?${param}`, token ); resolve(res); } catch (err) { reject(err); } }); }; module.exports = Tasks;