clickup_api
Version:
No oficial module for ClickUp API
190 lines (187 loc) • 4.43 kB
JavaScript
const Requests = require("../utils/requests");
var Lists = function (token, request) {
this.token = token;
this.request = request;
};
/**
* Create a list
* @param {String} folder_id Folder id where a list be created
* @param {JSON} data Body request for create a list
*/
Lists.prototype.create_list = function (folder_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/folder/${folder_id}/list`,
data,
token
);
resolve(res);
} catch (err) {
reject(err);
}
});
};
/**
* Create a list without a folder
* @param {String} space_id Space ID where a list be created
* @param {JSON} data Body request for create a list
*/
Lists.prototype.create_folderless_list = function (space_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/space/${space_id}/list`,
data,
token
);
resolve(res);
} catch (err) {
reject(err);
}
});
};
/**
* Update a list
* @param {String} list_id List ID to be updated
* @param {JSON} data Body request for update a list
*/
Lists.prototype.update_list = 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_put(
`/api/v2/list/${list_id}`,
data,
token
);
resolve(res);
} catch (err) {
reject(err);
}
});
};
/**
* Delete a list
* @param {String} list_id List ID to be deleted
*/
Lists.prototype.delete_list = function (list_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/list/${list_id}`,
token
);
resolve(res);
} catch (err) {
reject(err);
}
});
};
/**
* Get lists from a folder
* @param {String} folder_id Folder ID
* @param {Boolean} archived Search in archived folders
*/
Lists.prototype.get_lists = function (folder_id, archived) {
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/folder/${folder_id}/list?archived=${archived}`,
token
);
resolve(res);
} catch (err) {
reject(err);
}
});
};
/**
* Get lists from a space
* @param {String} space_id Space ID
* @param {Boolean} archived Search in archived spaces
*/
Lists.prototype.get_folderless_lists = function (space_id, archived) {
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/space/${space_id}/list?archived=${archived}`,
token
);
resolve(res);
} catch (err) {
reject(err);
}
});
};
/**
* Get info about a list
* @param {String} list_id List ID for informations
*/
Lists.prototype.get_list = function (list_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/list/${list_id}`,
token
);
resolve(res);
} catch (err) {
reject(err);
}
});
};
/**
* Add a task to an additional List
* @param {String} list_id List ID
* @param {String} task_id Task ID
*/
Lists.prototype.add_task_to_list = function (list_id, task_id) {
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/${task_id}`,
token
);
resolve(res);
} catch (err) {
reject(err);
}
});
};
/**
* Remove Task From List
* @param {String} list_id List ID where task on
* @param {String} task_id Task ID to be deleted
*/
Lists.prototype.remove_task_from_list = function (list_id, 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/list/${list_id}/task/${task_id}`,
token
);
resolve(res);
} catch (err) {
reject(err);
}
});
};
module.exports = Lists;