Spaces:
Running
Running
| import { useMutation, useQuery } from "@tanstack/react-query"; | |
| import { | |
| activateDataset, | |
| addFileToDataset, | |
| createDataset, | |
| createDatasetsDraft, | |
| deleteDataset, | |
| deleteFileFromDataset, | |
| getDataset, | |
| getDatasets, | |
| getProcessing, | |
| } from "./documentsApi"; | |
| import { GetDatasetRequestParams } from "./types"; | |
| import { queryClient } from "@/main"; | |
| export const useGetDatasets = () => { | |
| return useQuery({ | |
| queryKey: ["datasets"], | |
| queryFn: async () => { | |
| const response = await getDatasets(); | |
| return response; | |
| }, | |
| }); | |
| }; | |
| export const useCreateDataset = () => { | |
| return useMutation({ | |
| mutationFn: async (data: FormData) => { | |
| const response = await createDataset(data); | |
| return response; | |
| }, | |
| onSuccess: () => { | |
| queryClient.invalidateQueries({ queryKey: ["datasets"] }); | |
| }, | |
| }); | |
| }; | |
| export const useActivateDataset = () => { | |
| return useMutation({ | |
| mutationFn: async (id: number) => { | |
| const response = await activateDataset(id); | |
| return response; | |
| }, | |
| onSuccess: (data) => { | |
| queryClient.invalidateQueries({ queryKey: ["processing"] }); | |
| queryClient.invalidateQueries({ queryKey: ["datasets"] }); | |
| queryClient.invalidateQueries({ queryKey: ["dataset", data.id] }); | |
| }, | |
| }); | |
| }; | |
| export const useGetDataset = (id: number, params: GetDatasetRequestParams) => { | |
| return useQuery({ | |
| queryKey: ["dataset", id, params], | |
| queryFn: async () => { | |
| const response = await getDataset(id, params); | |
| return response; | |
| }, | |
| }); | |
| }; | |
| export const useCreateDatasetsDraft = () => { | |
| return useMutation({ | |
| mutationFn: async (id: number) => { | |
| const response = await createDatasetsDraft(id); | |
| return response; | |
| }, | |
| onSuccess: () => { | |
| queryClient.invalidateQueries({ queryKey: ["datasets"] }); | |
| queryClient.invalidateQueries({ queryKey: ["dataset"] }); | |
| }, | |
| }); | |
| }; | |
| export const useDeleteDataset = () => { | |
| return useMutation({ | |
| mutationFn: async (id: number) => { | |
| const response = await deleteDataset(id); | |
| return response; | |
| }, | |
| onSuccess: () => { | |
| queryClient.invalidateQueries({ queryKey: ["datasets"] }); | |
| }, | |
| }); | |
| }; | |
| export const useAddFileToDataset = () => { | |
| return useMutation({ | |
| mutationFn: async ({ id, data }: { id: number; data: FormData }) => { | |
| const response = await addFileToDataset(id, data); | |
| return response; | |
| }, | |
| onSuccess: () => { | |
| queryClient.invalidateQueries({ queryKey: ["datasets"] }); | |
| queryClient.invalidateQueries({ queryKey: ["dataset"] }); | |
| }, | |
| }); | |
| }; | |
| export const useDeleteFileFromDataset = () => { | |
| return useMutation({ | |
| mutationFn: async ({ datasetId, fileId }: { datasetId: number; fileId: number }) => { | |
| const response = await deleteFileFromDataset(datasetId, fileId); | |
| return response; | |
| }, | |
| onSuccess: () => { | |
| queryClient.invalidateQueries({ queryKey: ["datasets"] }); | |
| queryClient.invalidateQueries({ queryKey: ["dataset"] }); | |
| }, | |
| }); | |
| }; | |
| export const useGetProcessing = () => { | |
| return useQuery({ | |
| queryKey: ["processing"], | |
| queryFn: async () => { | |
| const response = await getProcessing(); | |
| return response; | |
| }, | |
| }); | |
| }; | |