box-node-sdk
Version:
Official SDK for Box Platform APIs
522 lines (521 loc) • 20.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TasksManager = exports.DeleteTaskByIdHeaders = exports.UpdateTaskByIdHeaders = exports.GetTaskByIdHeaders = exports.CreateTaskHeaders = exports.GetFileTasksHeaders = exports.DeleteTaskByIdOptionals = exports.UpdateTaskByIdOptionals = exports.GetTaskByIdOptionals = exports.CreateTaskOptionals = exports.GetFileTasksOptionals = void 0;
exports.serializeCreateTaskRequestBodyItemTypeField = serializeCreateTaskRequestBodyItemTypeField;
exports.deserializeCreateTaskRequestBodyItemTypeField = deserializeCreateTaskRequestBodyItemTypeField;
exports.serializeCreateTaskRequestBodyItemField = serializeCreateTaskRequestBodyItemField;
exports.deserializeCreateTaskRequestBodyItemField = deserializeCreateTaskRequestBodyItemField;
exports.serializeCreateTaskRequestBodyActionField = serializeCreateTaskRequestBodyActionField;
exports.deserializeCreateTaskRequestBodyActionField = deserializeCreateTaskRequestBodyActionField;
exports.serializeCreateTaskRequestBodyCompletionRuleField = serializeCreateTaskRequestBodyCompletionRuleField;
exports.deserializeCreateTaskRequestBodyCompletionRuleField = deserializeCreateTaskRequestBodyCompletionRuleField;
exports.serializeCreateTaskRequestBody = serializeCreateTaskRequestBody;
exports.deserializeCreateTaskRequestBody = deserializeCreateTaskRequestBody;
exports.serializeUpdateTaskByIdRequestBodyActionField = serializeUpdateTaskByIdRequestBodyActionField;
exports.deserializeUpdateTaskByIdRequestBodyActionField = deserializeUpdateTaskByIdRequestBodyActionField;
exports.serializeUpdateTaskByIdRequestBodyCompletionRuleField = serializeUpdateTaskByIdRequestBodyCompletionRuleField;
exports.deserializeUpdateTaskByIdRequestBodyCompletionRuleField = deserializeUpdateTaskByIdRequestBodyCompletionRuleField;
exports.serializeUpdateTaskByIdRequestBody = serializeUpdateTaskByIdRequestBody;
exports.deserializeUpdateTaskByIdRequestBody = deserializeUpdateTaskByIdRequestBody;
const tasks_1 = require("../schemas/tasks");
const task_1 = require("../schemas/task");
const utils_1 = require("../internal/utils");
const utils_2 = require("../internal/utils");
const errors_1 = require("../box/errors");
const network_1 = require("../networking/network");
const fetchOptions_1 = require("../networking/fetchOptions");
const utils_3 = require("../internal/utils");
const utils_4 = require("../internal/utils");
const json_1 = require("../serialization/json");
const json_2 = require("../serialization/json");
class GetFileTasksOptionals {
headers = new GetFileTasksHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
exports.GetFileTasksOptionals = GetFileTasksOptionals;
class CreateTaskOptionals {
headers = new CreateTaskHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
exports.CreateTaskOptionals = CreateTaskOptionals;
class GetTaskByIdOptionals {
headers = new GetTaskByIdHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
exports.GetTaskByIdOptionals = GetTaskByIdOptionals;
class UpdateTaskByIdOptionals {
requestBody = {};
headers = new UpdateTaskByIdHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.requestBody !== undefined) {
this.requestBody = fields.requestBody;
}
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
exports.UpdateTaskByIdOptionals = UpdateTaskByIdOptionals;
class DeleteTaskByIdOptionals {
headers = new DeleteTaskByIdHeaders({});
cancellationToken = void 0;
constructor(fields) {
if (fields.headers !== undefined) {
this.headers = fields.headers;
}
if (fields.cancellationToken !== undefined) {
this.cancellationToken = fields.cancellationToken;
}
}
}
exports.DeleteTaskByIdOptionals = DeleteTaskByIdOptionals;
class GetFileTasksHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
exports.GetFileTasksHeaders = GetFileTasksHeaders;
class CreateTaskHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
exports.CreateTaskHeaders = CreateTaskHeaders;
class GetTaskByIdHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
exports.GetTaskByIdHeaders = GetTaskByIdHeaders;
class UpdateTaskByIdHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
exports.UpdateTaskByIdHeaders = UpdateTaskByIdHeaders;
class DeleteTaskByIdHeaders {
/**
* Extra headers that will be included in the HTTP request. */
extraHeaders = {};
constructor(fields) {
if (fields.extraHeaders !== undefined) {
this.extraHeaders = fields.extraHeaders;
}
}
}
exports.DeleteTaskByIdHeaders = DeleteTaskByIdHeaders;
class TasksManager {
auth;
networkSession = new network_1.NetworkSession({});
constructor(fields) {
if (fields.auth !== undefined) {
this.auth = fields.auth;
}
if (fields.networkSession !== undefined) {
this.networkSession = fields.networkSession;
}
}
/**
* Retrieves a list of all the tasks for a file. This
* endpoint does not support pagination.
* @param {string} fileId The unique identifier that represents a file.
The ID for any file can be determined
by visiting a file in the web application
and copying the ID from the URL. For example,
for the URL `https://*.app.box.com/files/123`
the `file_id` is `123`.
Example: "12345"
* @param {GetFileTasksOptionalsInput} optionalsInput
* @returns {Promise<Tasks>}
*/
async getFileTasks(fileId, optionalsInput = {}) {
const optionals = new GetFileTasksOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = (0, utils_3.prepareParams)({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new fetchOptions_1.FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/files/', (0, utils_4.toString)(fileId), '/tasks'),
method: 'GET',
headers: headersMap,
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...(0, tasks_1.deserializeTasks)(response.data),
rawData: response.data,
};
}
/**
* Creates a single task on a file. This task is not assigned to any user and
* will need to be assigned separately.
* @param {CreateTaskRequestBody} requestBody Request body of createTask method
* @param {CreateTaskOptionalsInput} optionalsInput
* @returns {Promise<Task>}
*/
async createTask(requestBody, optionalsInput = {}) {
const optionals = new CreateTaskOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = (0, utils_3.prepareParams)({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new fetchOptions_1.FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/tasks'),
method: 'POST',
headers: headersMap,
data: serializeCreateTaskRequestBody(requestBody),
contentType: 'application/json',
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...(0, task_1.deserializeTask)(response.data),
rawData: response.data,
};
}
/**
* Retrieves information about a specific task.
* @param {string} taskId The ID of the task.
Example: "12345"
* @param {GetTaskByIdOptionalsInput} optionalsInput
* @returns {Promise<Task>}
*/
async getTaskById(taskId, optionalsInput = {}) {
const optionals = new GetTaskByIdOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = (0, utils_3.prepareParams)({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new fetchOptions_1.FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/tasks/', (0, utils_4.toString)(taskId)),
method: 'GET',
headers: headersMap,
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...(0, task_1.deserializeTask)(response.data),
rawData: response.data,
};
}
/**
* Updates a task. This can be used to update a task's configuration, or to
* update its completion state.
* @param {string} taskId The ID of the task.
Example: "12345"
* @param {UpdateTaskByIdOptionalsInput} optionalsInput
* @returns {Promise<Task>}
*/
async updateTaskById(taskId, optionalsInput = {}) {
const optionals = new UpdateTaskByIdOptionals({
requestBody: optionalsInput.requestBody,
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const requestBody = optionals.requestBody;
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = (0, utils_3.prepareParams)({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new fetchOptions_1.FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/tasks/', (0, utils_4.toString)(taskId)),
method: 'PUT',
headers: headersMap,
data: serializeUpdateTaskByIdRequestBody(requestBody),
contentType: 'application/json',
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return {
...(0, task_1.deserializeTask)(response.data),
rawData: response.data,
};
}
/**
* Removes a task from a file.
* @param {string} taskId The ID of the task.
Example: "12345"
* @param {DeleteTaskByIdOptionalsInput} optionalsInput
* @returns {Promise<undefined>}
*/
async deleteTaskById(taskId, optionalsInput = {}) {
const optionals = new DeleteTaskByIdOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers = optionals.headers;
const cancellationToken = optionals.cancellationToken;
const headersMap = (0, utils_3.prepareParams)({ ...{}, ...headers.extraHeaders });
const response = await this.networkSession.networkClient.fetch(new fetchOptions_1.FetchOptions({
url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/tasks/', (0, utils_4.toString)(taskId)),
method: 'DELETE',
headers: headersMap,
responseFormat: 'no_content',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
}));
return void 0;
}
}
exports.TasksManager = TasksManager;
function serializeCreateTaskRequestBodyItemTypeField(val) {
return val;
}
function deserializeCreateTaskRequestBodyItemTypeField(val) {
if (val == 'file') {
return val;
}
throw new errors_1.BoxSdkError({
message: "Can't deserialize CreateTaskRequestBodyItemTypeField",
});
}
function serializeCreateTaskRequestBodyItemField(val) {
return {
['id']: val.id,
['type']: val.type == void 0
? val.type
: serializeCreateTaskRequestBodyItemTypeField(val.type),
};
}
function deserializeCreateTaskRequestBodyItemField(val) {
if (!(0, json_2.sdIsMap)(val)) {
throw new errors_1.BoxSdkError({
message: 'Expecting a map for "CreateTaskRequestBodyItemField"',
});
}
if (!(val.id == void 0) && !(0, json_1.sdIsString)(val.id)) {
throw new errors_1.BoxSdkError({
message: 'Expecting string for "id" of type "CreateTaskRequestBodyItemField"',
});
}
const id = val.id == void 0 ? void 0 : val.id;
const type = val.type == void 0
? void 0
: deserializeCreateTaskRequestBodyItemTypeField(val.type);
return { id: id, type: type };
}
function serializeCreateTaskRequestBodyActionField(val) {
return val;
}
function deserializeCreateTaskRequestBodyActionField(val) {
if (val == 'review') {
return val;
}
if (val == 'complete') {
return val;
}
if ((0, json_1.sdIsString)(val)) {
return val;
}
throw new errors_1.BoxSdkError({
message: "Can't deserialize CreateTaskRequestBodyActionField",
});
}
function serializeCreateTaskRequestBodyCompletionRuleField(val) {
return val;
}
function deserializeCreateTaskRequestBodyCompletionRuleField(val) {
if (val == 'all_assignees') {
return val;
}
if (val == 'any_assignee') {
return val;
}
if ((0, json_1.sdIsString)(val)) {
return val;
}
throw new errors_1.BoxSdkError({
message: "Can't deserialize CreateTaskRequestBodyCompletionRuleField",
});
}
function serializeCreateTaskRequestBody(val) {
return {
['item']: serializeCreateTaskRequestBodyItemField(val.item),
['action']: val.action == void 0
? val.action
: serializeCreateTaskRequestBodyActionField(val.action),
['message']: val.message,
['due_at']: val.dueAt == void 0 ? val.dueAt : (0, utils_1.serializeDateTime)(val.dueAt),
['completion_rule']: val.completionRule == void 0
? val.completionRule
: serializeCreateTaskRequestBodyCompletionRuleField(val.completionRule),
};
}
function deserializeCreateTaskRequestBody(val) {
if (!(0, json_2.sdIsMap)(val)) {
throw new errors_1.BoxSdkError({
message: 'Expecting a map for "CreateTaskRequestBody"',
});
}
if (val.item == void 0) {
throw new errors_1.BoxSdkError({
message: 'Expecting "item" of type "CreateTaskRequestBody" to be defined',
});
}
const item = deserializeCreateTaskRequestBodyItemField(val.item);
const action = val.action == void 0
? void 0
: deserializeCreateTaskRequestBodyActionField(val.action);
if (!(val.message == void 0) && !(0, json_1.sdIsString)(val.message)) {
throw new errors_1.BoxSdkError({
message: 'Expecting string for "message" of type "CreateTaskRequestBody"',
});
}
const message = val.message == void 0 ? void 0 : val.message;
if (!(val.due_at == void 0) && !(0, json_1.sdIsString)(val.due_at)) {
throw new errors_1.BoxSdkError({
message: 'Expecting string for "due_at" of type "CreateTaskRequestBody"',
});
}
const dueAt = val.due_at == void 0 ? void 0 : (0, utils_2.deserializeDateTime)(val.due_at);
const completionRule = val.completion_rule == void 0
? void 0
: deserializeCreateTaskRequestBodyCompletionRuleField(val.completion_rule);
return {
item: item,
action: action,
message: message,
dueAt: dueAt,
completionRule: completionRule,
};
}
function serializeUpdateTaskByIdRequestBodyActionField(val) {
return val;
}
function deserializeUpdateTaskByIdRequestBodyActionField(val) {
if (val == 'review') {
return val;
}
if (val == 'complete') {
return val;
}
if ((0, json_1.sdIsString)(val)) {
return val;
}
throw new errors_1.BoxSdkError({
message: "Can't deserialize UpdateTaskByIdRequestBodyActionField",
});
}
function serializeUpdateTaskByIdRequestBodyCompletionRuleField(val) {
return val;
}
function deserializeUpdateTaskByIdRequestBodyCompletionRuleField(val) {
if (val == 'all_assignees') {
return val;
}
if (val == 'any_assignee') {
return val;
}
if ((0, json_1.sdIsString)(val)) {
return val;
}
throw new errors_1.BoxSdkError({
message: "Can't deserialize UpdateTaskByIdRequestBodyCompletionRuleField",
});
}
function serializeUpdateTaskByIdRequestBody(val) {
return {
['action']: val.action == void 0
? val.action
: serializeUpdateTaskByIdRequestBodyActionField(val.action),
['message']: val.message,
['due_at']: val.dueAt == void 0 ? val.dueAt : (0, utils_1.serializeDateTime)(val.dueAt),
['completion_rule']: val.completionRule == void 0
? val.completionRule
: serializeUpdateTaskByIdRequestBodyCompletionRuleField(val.completionRule),
};
}
function deserializeUpdateTaskByIdRequestBody(val) {
if (!(0, json_2.sdIsMap)(val)) {
throw new errors_1.BoxSdkError({
message: 'Expecting a map for "UpdateTaskByIdRequestBody"',
});
}
const action = val.action == void 0
? void 0
: deserializeUpdateTaskByIdRequestBodyActionField(val.action);
if (!(val.message == void 0) && !(0, json_1.sdIsString)(val.message)) {
throw new errors_1.BoxSdkError({
message: 'Expecting string for "message" of type "UpdateTaskByIdRequestBody"',
});
}
const message = val.message == void 0 ? void 0 : val.message;
if (!(val.due_at == void 0) && !(0, json_1.sdIsString)(val.due_at)) {
throw new errors_1.BoxSdkError({
message: 'Expecting string for "due_at" of type "UpdateTaskByIdRequestBody"',
});
}
const dueAt = val.due_at == void 0 ? void 0 : (0, utils_2.deserializeDateTime)(val.due_at);
const completionRule = val.completion_rule == void 0
? void 0
: deserializeUpdateTaskByIdRequestBodyCompletionRuleField(val.completion_rule);
return {
action: action,
message: message,
dueAt: dueAt,
completionRule: completionRule,
};
}
//# sourceMappingURL=tasks.js.map