| 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; |
| }, |
| }); |
| }; |
|
|