import ticktick from "../../ticktick.app.mjs";
import { removeNullEntries } from "../../common/utils.mjs";
export default {
key: "ticktick-update-task",
name: "Update a Task",
description: "Update a Task. [See documentation](https://developer.ticktick.com/api#/openapi?id=update-a-task)",
version: "0.0.6",
annotations: {
destructiveHint: true,
openWorldHint: true,
readOnlyHint: false,
},
type: "action",
props: {
ticktick,
projectId: {
propDefinition: [
ticktick,
"projectId",
],
},
taskId: {
propDefinition: [
ticktick,
"taskId",
(c) => ({
projectId: c.projectId,
}),
],
},
title: {
type: "string",
label: "Title",
description: "Task title",
optional: true,
},
content: {
type: "string",
label: "Content",
description: "Task content",
optional: true,
},
allDay: {
type: "boolean",
label: "All day",
description: "All day",
reloadProps: true,
optional: true,
},
},
async additionalProps() {
const props = {};
if (!this.allDay) {
props.startDate = {
type: "string",
label: "Start date",
description: "Start date and time in \"yyyy-MM-dd'T'HH:mm:ssZ\" format. Example : \"2019-11-13T03:00:00+0000\"",
optional: true,
};
props.dueDate = {
type: "string",
label: "Due date",
description: "Due date and time in \"yyyy-MM-dd'T'HH:mm:ssZ\" format. Example : \"2019-11-13T03:00:00+0000\"",
optional: true,
};
}
return props;
},
async run({ $ }) {
const data = removeNullEntries({
title: this.title,
content: this.content,
startDate: this.startDate,
dueDate: this.dueDate,
allDay: this.allDay,
});
if (this.projectId && this.projectId !== "inbox") {
data.projectId = this.projectId;
}
const response = await this.ticktick.updateTask({
$,
data,
}, this.taskId);
response && $.export("$summary", "Successfully updated task");
return response;
},
};