Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Commit 05226f4

Browse files
committed
feat: add task.update() method
closes feat: task.update #25
1 parent b333e3f commit 05226f4

File tree

4 files changed

+37
-1
lines changed

4 files changed

+37
-1
lines changed

src/__tests__/task.tests.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,19 @@ describe("API Tasks Functions", () => {
3434
generalExpectedTaskID = apiTask.id;
3535
});
3636

37+
test("Update A Task", async () => {
38+
let response = await myClient.task.update(generalExpectedTaskID, {
39+
content: "Updated Task",
40+
priority: 2,
41+
});
42+
43+
expect(response.status).toBe(204);
44+
});
45+
3746
test("Get A Task", async () => {
3847
let apiTask = await myClient.task.get(generalExpectedTaskID);
3948

40-
expect(apiTask.content).toBe(generalExpectedTask.content);
49+
expect(apiTask.content).toBe("Updated Task");
4150
});
4251

4352
test("Close A Task", async () => {

src/definitions/Submodules.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,8 @@ declare interface TaskModule {
2020
getAll: () => Promise<string[]>;
2121
getAllJSON: () => Promise<APITaskObject[]>;
2222
get: (id: string | number) => Promise<APITaskObject>;
23+
update: (
24+
id: number | string,
25+
task: TaskUpdatableParameters
26+
) => Promise<AxiosResponse>;
2327
}

src/definitions/Tasks.d.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,16 @@ declare interface UserCreatedTask {
1717
declare interface ClientCreatedTask extends UserCreatedTask {
1818
content: string;
1919
}
20+
21+
// See https://developer.todoist.com/rest/v1/#update-a-task
22+
declare interface TaskUpdatableParameters {
23+
content?: string;
24+
description?: string;
25+
label_ids?: number[];
26+
priority?: number;
27+
due_string?: string;
28+
due_date?: string;
29+
due_datetime?: string;
30+
due_lang?: string;
31+
assignee?: number;
32+
}

src/submodules/task.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,16 @@ const taskClientModule = (headers: AuthHeader): TaskModule => {
2727
.then((res) => res.data as APITaskObject);
2828
},
2929

30+
update: async (id, task) => {
31+
return await axios.post(
32+
`https://api.todoist.com/rest/v1/tasks/${id}`,
33+
task,
34+
{
35+
headers,
36+
}
37+
);
38+
},
39+
3040
getAll: async () => {
3141
let json = await getAllJSON(headers);
3242
let arrayTasks: string[] = [];

0 commit comments

Comments
 (0)