Files
advx/src/hooks/useProcessos.ts
T
rodrigo 5acec6b71e Lint errors
Signed-off-by: Rodrigo Martins <rodrigo.sousa.577@gmail.com>
2025-04-12 20:32:39 -03:00

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