Files
Reactive-Resume/apps/client/src/services/resume/import.ts
2023-11-05 12:31:42 +01:00

36 lines
981 B
TypeScript

import { ImportResumeDto, ResumeDto } from "@reactive-resume/dto";
import { useMutation } from "@tanstack/react-query";
import { AxiosResponse } from "axios";
import { axios } from "@/client/libs/axios";
import { queryClient } from "@/client/libs/query-client";
export const importResume = async (data: ImportResumeDto) => {
const response = await axios.post<ResumeDto, AxiosResponse<ResumeDto>, ImportResumeDto>(
"/resume/import",
data,
);
return response.data;
};
export const useImportResume = () => {
const {
error,
isPending: loading,
mutateAsync: importResumeFn,
} = useMutation({
mutationFn: importResume,
onSuccess: (data) => {
queryClient.setQueryData<ResumeDto>(["resume", { id: data.id }], data);
queryClient.setQueryData<ResumeDto[]>(["resumes"], (cache) => {
if (!cache) return [data];
return [...cache, data];
});
},
});
return { importResume: importResumeFn, loading, error };
};