84 lines
2.0 KiB
TypeScript
84 lines
2.0 KiB
TypeScript
import { useQuery, useMutation, useQueryClient } from "react-query";
|
|
|
|
import api from "../services/api";
|
|
import { Processo } from "../types/entities";
|
|
|
|
export const useProcessos = () => {
|
|
const queryClient = useQueryClient();
|
|
|
|
const { data: processos = [], isLoading } = useQuery<Processo[]>(
|
|
"processos",
|
|
async () => {
|
|
const response = await api.get("/processos");
|
|
return response.data;
|
|
},
|
|
);
|
|
|
|
const getProcesso = async (id: string) => {
|
|
const response = await api.get(`/processos/${id}`);
|
|
return response.data;
|
|
};
|
|
|
|
// Corrigido para usar createProcesso como mutação
|
|
const createProcesso = useMutation(
|
|
async (data: Partial<Processo>) => {
|
|
const response = await api.post("/processos", data);
|
|
return response.data;
|
|
},
|
|
{
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries("processos");
|
|
},
|
|
},
|
|
);
|
|
|
|
// Corrigido para usar updateProcesso como mutação
|
|
const updateProcesso = useMutation(
|
|
async ({ id, data }: { id: string; data: Partial<Processo> }) => {
|
|
const response = await api.put(`/processos/${id}`, data);
|
|
return response.data;
|
|
},
|
|
{
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries("processos");
|
|
},
|
|
},
|
|
);
|
|
|
|
// Corrigido para usar deleteProcesso como mutação
|
|
const deleteProcesso = useMutation(
|
|
async (id: string) => {
|
|
await api.delete(`/processos/${id}`);
|
|
},
|
|
{
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries("processos");
|
|
},
|
|
},
|
|
);
|
|
|
|
const updateResultado = useMutation(
|
|
async ({ id, resultado }: { id: string; resultado: string }) => {
|
|
const response = await api.patch(`/processos/${id}/resultado`, {
|
|
resultado,
|
|
});
|
|
return response.data;
|
|
},
|
|
{
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries("processos");
|
|
},
|
|
},
|
|
);
|
|
|
|
return {
|
|
processos,
|
|
isLoading,
|
|
getProcesso,
|
|
createProcesso,
|
|
updateProcesso,
|
|
deleteProcesso, // Retornando a mutação
|
|
updateResultado,
|
|
};
|
|
};
|