feat(google-tasks): add update task action
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
import findTask from './find-task/index.js';
|
import findTask from './find-task/index.js';
|
||||||
|
import updateTask from './update-task/index.js';
|
||||||
|
|
||||||
export default [findTask];
|
export default [findTask, updateTask];
|
||||||
|
@@ -0,0 +1,108 @@
|
|||||||
|
import defineAction from '../../../../helpers/define-action.js';
|
||||||
|
|
||||||
|
export default defineAction({
|
||||||
|
name: 'Update task',
|
||||||
|
key: 'updateTask',
|
||||||
|
description: 'Updates an existing task.',
|
||||||
|
arguments: [
|
||||||
|
{
|
||||||
|
label: 'Task List',
|
||||||
|
key: 'taskListId',
|
||||||
|
type: 'dropdown',
|
||||||
|
required: true,
|
||||||
|
description: '',
|
||||||
|
variables: true,
|
||||||
|
source: {
|
||||||
|
type: 'query',
|
||||||
|
name: 'getDynamicData',
|
||||||
|
arguments: [
|
||||||
|
{
|
||||||
|
name: 'key',
|
||||||
|
value: 'listTaskLists',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Task',
|
||||||
|
key: 'taskId',
|
||||||
|
type: 'dropdown',
|
||||||
|
required: true,
|
||||||
|
description: 'Ensure that you choose a list before proceeding.',
|
||||||
|
variables: true,
|
||||||
|
dependsOn: ['parameters.taskListId'],
|
||||||
|
source: {
|
||||||
|
type: 'query',
|
||||||
|
name: 'getDynamicData',
|
||||||
|
arguments: [
|
||||||
|
{
|
||||||
|
name: 'key',
|
||||||
|
value: 'listTasks',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'parameters.taskListId',
|
||||||
|
value: '{parameters.taskListId}',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Title',
|
||||||
|
key: 'title',
|
||||||
|
type: 'string',
|
||||||
|
required: false,
|
||||||
|
description: 'Provide a new title for the revised task.',
|
||||||
|
variables: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Status',
|
||||||
|
key: 'status',
|
||||||
|
type: 'dropdown',
|
||||||
|
required: false,
|
||||||
|
description:
|
||||||
|
'Specify the status of the updated task. If you opt for a custom value, enter either "needsAttention" or "completed."',
|
||||||
|
variables: true,
|
||||||
|
options: [
|
||||||
|
{ label: 'Incomplete', value: 'needsAction' },
|
||||||
|
{ label: 'Complete', value: 'completed' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Notes',
|
||||||
|
key: 'notes',
|
||||||
|
type: 'string',
|
||||||
|
required: false,
|
||||||
|
description: 'Provide a note for the revised task.',
|
||||||
|
variables: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Due Date',
|
||||||
|
key: 'due',
|
||||||
|
type: 'string',
|
||||||
|
required: false,
|
||||||
|
description:
|
||||||
|
'Specify the deadline for the task (as a RFC 3339 timestamp).',
|
||||||
|
variables: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
async run($) {
|
||||||
|
const { taskListId, taskId, title, status, notes, due } = $.step.parameters;
|
||||||
|
|
||||||
|
const body = {
|
||||||
|
title,
|
||||||
|
status,
|
||||||
|
notes,
|
||||||
|
due,
|
||||||
|
};
|
||||||
|
|
||||||
|
const { data } = await $.http.patch(
|
||||||
|
`/tasks/v1/lists/${taskListId}/tasks/${taskId}`,
|
||||||
|
body
|
||||||
|
);
|
||||||
|
|
||||||
|
$.setActionItem({
|
||||||
|
raw: data,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
});
|
@@ -1,3 +1,4 @@
|
|||||||
import listTaskLists from './list-task-lists/index.js';
|
import listTaskLists from './list-task-lists/index.js';
|
||||||
|
import listTasks from './list-tasks/index.js';
|
||||||
|
|
||||||
export default [listTaskLists];
|
export default [listTaskLists, listTasks];
|
||||||
|
@@ -0,0 +1,40 @@
|
|||||||
|
export default {
|
||||||
|
name: 'List tasks',
|
||||||
|
key: 'listTasks',
|
||||||
|
|
||||||
|
async run($) {
|
||||||
|
const tasks = {
|
||||||
|
data: [],
|
||||||
|
};
|
||||||
|
const taskListId = $.step.parameters.taskListId;
|
||||||
|
|
||||||
|
const params = {
|
||||||
|
maxResults: 100,
|
||||||
|
pageToken: undefined,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!taskListId) {
|
||||||
|
return tasks;
|
||||||
|
}
|
||||||
|
|
||||||
|
do {
|
||||||
|
const { data } = await $.http.get(`/tasks/v1/lists/${taskListId}/tasks`, {
|
||||||
|
params,
|
||||||
|
});
|
||||||
|
params.pageToken = data.nextPageToken;
|
||||||
|
|
||||||
|
if (data.items) {
|
||||||
|
for (const task of data.items) {
|
||||||
|
if (task.title !== '') {
|
||||||
|
tasks.data.push({
|
||||||
|
value: task.id,
|
||||||
|
name: task.title,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} while (params.pageToken);
|
||||||
|
|
||||||
|
return tasks;
|
||||||
|
},
|
||||||
|
};
|
@@ -3,6 +3,8 @@ favicon: /favicons/google-tasks.svg
|
|||||||
items:
|
items:
|
||||||
- name: Find task
|
- name: Find task
|
||||||
desc: Looking for an incomplete task.
|
desc: Looking for an incomplete task.
|
||||||
|
- name: Update task
|
||||||
|
desc: Updates an existing task.
|
||||||
---
|
---
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
Reference in New Issue
Block a user