/
laborgit
/
laborgit-frontend
Обзор
Документация
Войти
/
laborgit
/
laborgit-frontend
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
src/services/api/taskApi.ts
37 строк
1 KB
gdev2018
TSKLBRGTFRNT-17 upd Options
08 авг 2025, 22:02
08 авг 2025, 22:02
cd44f24
Код
Авторство
О чём код?
import { createApi } from "@reduxjs/toolkit/query/react"; import axiosBaseQuery from "services/utils/axiosBaseQuery.ts"; import { KEEP_IN_CACHE_TIME_S } from "const/system.ts"; import { ITask } from "dto/ITask.ts"; import { UserTaskRequest } from "components/UserActivity/types"; import { generateUniqueBigIntWithTimestamp } from "utils/numeric.ts"; import { TASK_API } from "const/urlApi.ts"; export const taskApi = createApi({ reducerPath: "taskApi", baseQuery: axiosBaseQuery(), tagTypes: [], keepUnusedDataFor: KEEP_IN_CACHE_TIME_S, endpoints: (builder) => ({ upsertTask: builder.mutation<ITask, UserTaskRequest>({ query: ({ userId, task }) => { const isCreate = task.id === "new"; const updatedValue = isCreate ? { ...task, id: generateUniqueBigIntWithTimestamp().toString() } : task; return { url: isCreate ? `${TASK_API(userId)}/create` : `${TASK_API(userId)}/${updatedValue.id}`, method: isCreate ? "POST" : "PATCH", data: updatedValue }; } }), deleteTask: builder.mutation<void, { userId: number; taskId: string }>({ query: ({ userId, taskId }) => ({ url: `${TASK_API(userId)}/${taskId}`, method: "DELETE" }) }) }) }); export const { useUpsertTaskMutation, useDeleteTaskMutation } = taskApi;