UNPKG

clickup_api

Version:

No oficial module for ClickUp API

277 lines (274 loc) 6.09 kB
const Requests = require("../utils/requests"); const genParams = require("../utils/params"); var TimeTracking = function (token, request) { this.token = token; this.request = request; }; /** * * @param {JSON} params */ TimeTracking.prototype.get_time_entries_within_date_range = 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}/time_entries${param}`, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * * @param {String} team_id * @param {String} timer_id */ TimeTracking.prototype.get_singular_time_entry = function (team_id, timer_id) { var token = this.token; var request = this.request; return new Promise(async function (resolve, reject) { try { var res = await request.https_clickupapi_get( `/api/v2/team/${team_id}/time_entries/${timer_id}`, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * * @param {String} team_id */ TimeTracking.prototype.get_running_time_entry = function (team_id) { var token = this.token; var request = this.request; return new Promise(async function (resolve, reject) { try { var res = await request.https_clickupapi_get( `/api/v2/team/${team_id}/time_entries/current`, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Create time entry * @param {String} team_id * @param {JSON} data */ TimeTracking.prototype.create_time_entry = function (team_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/team/${team_id}/time_entries`, data, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Remove time entry * @param {String} team_id */ TimeTracking.prototype.remove_tags_from_time_entries = function (team_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/team/${team_id}/time_entries/tags`, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Get all time entries * @param {String} team_id */ TimeTracking.prototype.get_all_tags_from_time_entries = function (team_id) { var token = this.token; var request = this.request; return new Promise(async function (resolve, reject) { try { var res = await request.https_clickupapi_get( `/api/v2/team/${team_id}/time_entries/tags`, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * * @param {String} team_id * @param {JSON} data */ TimeTracking.prototype.add_tags_from_time_entries = function (team_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/team/${team_id}/time_entries/tags`, data, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * * @param {String } team_id * @param {JSON} data */ TimeTracking.prototype.change_tag_names_from_time_entries = function ( team_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/team/${team_id}/time_entries/tags`, data, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * * @param {String} team_id * @param {String} timer_id * @param {JSON} data */ TimeTracking.prototype.start_time_entry = function (team_id, timer_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/team/${team_id}/time_entries/start/${timer_id}`, data, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Stop time entry * @param {String} team_id */ TimeTracking.prototype.stop_time_entry = function (team_id) { var token = this.token; var request = this.request; return new Promise(async function (resolve, reject) { try { var res = await request.https_clickupapi_put( `/v2/team/${team_id}/time_entries/stop`, {}, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Delete time entry * @param {String} team_id * @param {String} timer_id */ TimeTracking.prototype.delete_time_entry = function (team_id, timer_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/team/${team_id}/time_entries/${timer_id}`, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Update time entry * @param {String} team_id * @param {String} timer_id * @param {JSON} data */ TimeTracking.prototype.update_time_entry = function (team_id, timer_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/team/${team_id}/time_entries/${timer_id}`, data, token ); resolve(res); } catch (err) { reject(err); } }); }; /** * Get time entry history * @param {String} team_id * @param {String} timer_id */ TimeTracking.prototype.get_time_entry_history = function (team_id, timer_id) { var token = this.token; var request = this.request; return new Promise(async function (resolve, reject) { try { var res = await request.https_clickupapi_get( `/api/v2/team/${team_id}/time_entries/${timer_id}/history`, token ); resolve(res); } catch (err) { reject(err); } }); }; module.exports = TimeTracking;