UNPKG

n8n-nodes-base

Version:

Base nodes of n8n

197 lines 9.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GoogleTasks = void 0; const n8n_workflow_1 = require("n8n-workflow"); const GenericFunctions_1 = require("./GenericFunctions"); const TaskDescription_1 = require("./TaskDescription"); class GoogleTasks { description = { displayName: 'Google Tasks', name: 'googleTasks', icon: 'file:googleTasks.svg', group: ['input'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', description: 'Consume Google Tasks API', schemaPath: 'Google/Task', defaults: { name: 'Google Tasks', }, usableAsTool: true, inputs: [n8n_workflow_1.NodeConnectionTypes.Main], outputs: [n8n_workflow_1.NodeConnectionTypes.Main], credentials: [ { name: 'googleTasksOAuth2Api', required: true, }, ], properties: [ { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, options: [ { name: 'Task', value: 'task', }, ], default: 'task', }, ...TaskDescription_1.taskOperations, ...TaskDescription_1.taskFields, ], }; methods = { loadOptions: { // Get all the tasklists to display them to user so that they can select them easily async getTasks() { const returnData = []; const tasks = await GenericFunctions_1.googleApiRequestAllItems.call(this, 'items', 'GET', '/tasks/v1/users/@me/lists'); for (const task of tasks) { const taskName = task.title; const taskId = task.id; returnData.push({ name: taskName, value: taskId, }); } return returnData; }, }, }; async execute() { const items = this.getInputData(); const returnData = []; const length = items.length; const qs = {}; let responseData; const resource = this.getNodeParameter('resource', 0); const operation = this.getNodeParameter('operation', 0); let body = {}; for (let i = 0; i < length; i++) { try { if (resource === 'task') { if (operation === 'create') { body = {}; //https://developers.google.com/tasks/v1/reference/tasks/insert const taskId = this.getNodeParameter('task', i); body.title = this.getNodeParameter('title', i); const additionalFields = this.getNodeParameter('additionalFields', i); if (additionalFields.parent) { qs.parent = additionalFields.parent; } if (additionalFields.previous) { qs.previous = additionalFields.previous; } if (additionalFields.status) { body.status = additionalFields.status; } if (additionalFields.notes) { body.notes = additionalFields.notes; } if (additionalFields.dueDate) { body.due = additionalFields.dueDate; } if (additionalFields.completed) { body.completed = additionalFields.completed; } if (additionalFields.deleted) { body.deleted = additionalFields.deleted; } responseData = await GenericFunctions_1.googleApiRequest.call(this, 'POST', `/tasks/v1/lists/${taskId}/tasks`, body, qs); } if (operation === 'delete') { //https://developers.google.com/tasks/v1/reference/tasks/delete const taskListId = this.getNodeParameter('task', i); const taskId = this.getNodeParameter('taskId', i); responseData = await GenericFunctions_1.googleApiRequest.call(this, 'DELETE', `/tasks/v1/lists/${taskListId}/tasks/${taskId}`, {}); responseData = { success: true }; } if (operation === 'get') { //https://developers.google.com/tasks/v1/reference/tasks/get const taskListId = this.getNodeParameter('task', i); const taskId = this.getNodeParameter('taskId', i); responseData = await GenericFunctions_1.googleApiRequest.call(this, 'GET', `/tasks/v1/lists/${taskListId}/tasks/${taskId}`, {}, qs); } if (operation === 'getAll') { //https://developers.google.com/tasks/v1/reference/tasks/list const returnAll = this.getNodeParameter('returnAll', i); const taskListId = this.getNodeParameter('task', i); const { showCompleted = true, showDeleted = false, showHidden = false, ...options } = this.getNodeParameter('additionalFields', i); if (options.completedMax) { qs.completedMax = options.completedMax; } if (options.completedMin) { qs.completedMin = options.completedMin; } if (options.dueMin) { qs.dueMin = options.dueMin; } if (options.dueMax) { qs.dueMax = options.dueMax; } qs.showCompleted = showCompleted; qs.showDeleted = showDeleted; qs.showHidden = showHidden; if (options.updatedMin) { qs.updatedMin = options.updatedMin; } if (returnAll) { responseData = await GenericFunctions_1.googleApiRequestAllItems.call(this, 'items', 'GET', `/tasks/v1/lists/${taskListId}/tasks`, {}, qs); } else { qs.maxResults = this.getNodeParameter('limit', i); responseData = await GenericFunctions_1.googleApiRequest.call(this, 'GET', `/tasks/v1/lists/${taskListId}/tasks`, {}, qs); responseData = responseData.items; } } if (operation === 'update') { body = {}; //https://developers.google.com/tasks/v1/reference/tasks/patch const taskListId = this.getNodeParameter('task', i); const taskId = this.getNodeParameter('taskId', i); const updateFields = this.getNodeParameter('updateFields', i); if (updateFields.previous) { qs.previous = updateFields.previous; } if (updateFields.status) { body.status = updateFields.status; } if (updateFields.notes) { body.notes = updateFields.notes; } if (updateFields.title) { body.title = updateFields.title; } if (updateFields.dueDate) { body.due = updateFields.dueDate; } if (updateFields.completed) { body.completed = updateFields.completed; } if (updateFields.deleted) { body.deleted = updateFields.deleted; } responseData = await GenericFunctions_1.googleApiRequest.call(this, 'PATCH', `/tasks/v1/lists/${taskListId}/tasks/${taskId}`, body, qs); } } const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), { itemData: { item: i } }); returnData.push(...executionData); } catch (error) { if (this.continueOnFail()) { const executionErrorData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray({ error: error.message }), { itemData: { item: i } }); returnData.push(...executionErrorData); continue; } throw error; } } return [returnData]; } } exports.GoogleTasks = GoogleTasks; //# sourceMappingURL=GoogleTasks.node.js.map