This commit is contained in:
2024-05-02 23:50:42 +02:00
parent 0cab278f45
commit 53984d9c89
29 changed files with 2818 additions and 1864 deletions

View File

@@ -0,0 +1,86 @@
import { handleError } from "@/helpers";
import type {
CreateTaskResponse,
CreateTodolistResponse,
DeleteTaskResponse,
DeleteTodolistResponse,
Task,
TasksResponse,
Todolist,
UpdateTaskResponse,
} from "@/services";
import { todolistApiInstance } from "@/services/todolist-api/todolist-api.instance";
export const TodolistAPI = {
async getTodolists() {
const res = await todolistApiInstance.get<Todolist[]>("/todolists");
return res.data;
},
async createTodolist({ title }: { title: string }) {
const res = await todolistApiInstance.post<CreateTodolistResponse>(
"/todolists",
{
title,
}
);
return handleError(res.data);
},
async deleteTodolist({ todolistId }: { todolistId: string }) {
const res = await todolistApiInstance.delete<DeleteTodolistResponse>(
`/todolists/${todolistId}`
);
return res.data;
},
async getTodolistTasks({ todolistId }: { todolistId: string }) {
const res = await todolistApiInstance.get<TasksResponse>(
`/todolists/${todolistId}/tasks`
);
return res.data;
},
async createTask({
todolistId,
title,
}: {
todolistId: string;
title: string;
}) {
const res = await todolistApiInstance.post<CreateTaskResponse>(
`/todolists/${todolistId}/tasks`,
{ title }
);
return res.data;
},
async updateTask({ todolistId, task }: { todolistId: string; task: Task }) {
const { id, ...rest } = task;
const res = await todolistApiInstance.patch<UpdateTaskResponse>(
`/todolists/${todolistId}/tasks/${id}`,
rest
);
return res.data;
},
async deleteTask({
todolistId,
taskId,
}: {
todolistId: string;
taskId: string;
}) {
const res = await todolistApiInstance.delete<DeleteTaskResponse>(
`/todolists/${todolistId}/tasks/${taskId}`
);
return res.data;
},
};