282 lines
8.5 KiB
TypeScript
282 lines
8.5 KiB
TypeScript
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
|
|
import { ENDPOINT } from "@/shared/config";
|
|
|
|
import type {
|
|
CklstArtclSaveRequest,
|
|
CklstArtclSearchParams,
|
|
CklstArtclUpdateRequest,
|
|
} from "../model/cklst-artcl-interface";
|
|
import type { CklstMngSaveRequest, CklstMngSearchParams } from "../model/cklst-mng-interface";
|
|
import type {
|
|
CklstRvwSaveRequest,
|
|
CklstRvwSearchParams,
|
|
CklstRvwUpdateRequest,
|
|
} from "../model/cklst-rvw-interface";
|
|
|
|
import { cklstArtclService } from "./cklst-artcl-service";
|
|
import { cklstMngService } from "./cklst-mng-service";
|
|
import { cklstRvwService } from "./cklst-rvw-service";
|
|
|
|
const cklstMngBaseKey = [ENDPOINT.AS_SERVICE.CKLST] as const;
|
|
const cklstArtclBaseKey = [ENDPOINT.AS_SERVICE.CKLST_ARTCL] as const;
|
|
const cklstRvwBaseKey = [ENDPOINT.AS_SERVICE.CKLST_RVW] as const;
|
|
|
|
export function useCklstMngPage(params: CklstMngSearchParams) {
|
|
return useQuery({
|
|
queryKey: [...cklstMngBaseKey, "page", params],
|
|
queryFn: () => cklstMngService.findPage(params),
|
|
});
|
|
}
|
|
|
|
export function useCklstMng(cklstSn: number | null | undefined) {
|
|
return useQuery({
|
|
queryKey: [...cklstMngBaseKey, cklstSn],
|
|
queryFn: () => cklstMngService.findById(cklstSn!),
|
|
enabled: cklstSn != null,
|
|
});
|
|
}
|
|
|
|
export function useCreateCklstMng() {
|
|
const queryClient = useQueryClient();
|
|
|
|
return useMutation({
|
|
mutationFn: (body: CklstMngSaveRequest) => cklstMngService.create(body),
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: cklstMngBaseKey });
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useUpdateCklstMng() {
|
|
const queryClient = useQueryClient();
|
|
|
|
return useMutation({
|
|
mutationFn: ({ cklstSn, body }: { cklstSn: number; body: CklstMngSaveRequest }) =>
|
|
cklstMngService.update(cklstSn, body),
|
|
onSuccess: (_data, { cklstSn }) => {
|
|
queryClient.invalidateQueries({ queryKey: cklstMngBaseKey });
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstMngBaseKey, cklstSn],
|
|
});
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useDeleteCklstMng() {
|
|
const queryClient = useQueryClient();
|
|
|
|
return useMutation({
|
|
mutationFn: (cklstSn: number) => cklstMngService.remove(cklstSn),
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: cklstMngBaseKey });
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useCklstArtclPage(params: CklstArtclSearchParams) {
|
|
const { cklstSn } = params;
|
|
|
|
return useQuery({
|
|
queryKey: [...cklstArtclBaseKey, "page", params],
|
|
queryFn: () => cklstArtclService.findPage(params),
|
|
enabled: cklstSn != null,
|
|
});
|
|
}
|
|
|
|
export function useCklstArtclList(cklstSn: number | null | undefined) {
|
|
return useQuery({
|
|
queryKey: [...cklstArtclBaseKey, "by-cklst", cklstSn],
|
|
queryFn: () => cklstArtclService.findByCklstSn(cklstSn!),
|
|
enabled: cklstSn != null,
|
|
});
|
|
}
|
|
|
|
export function useCklstArtcl(params: {
|
|
cklstArtclSn: number | null | undefined;
|
|
cklstSn: number | null | undefined;
|
|
}) {
|
|
const { cklstArtclSn, cklstSn } = params;
|
|
|
|
return useQuery({
|
|
queryKey: [...cklstArtclBaseKey, cklstArtclSn, cklstSn],
|
|
queryFn: () => cklstArtclService.findById(cklstArtclSn!, cklstSn!),
|
|
enabled: cklstArtclSn != null && cklstSn != null,
|
|
});
|
|
}
|
|
|
|
export function useCreateCklstArtcl() {
|
|
const queryClient = useQueryClient();
|
|
|
|
return useMutation({
|
|
mutationFn: (body: CklstArtclSaveRequest) => cklstArtclService.create(body),
|
|
onSuccess: (_data, { cklstSn }) => {
|
|
queryClient.invalidateQueries({ queryKey: cklstArtclBaseKey });
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstArtclBaseKey, "page", { cklstSn }],
|
|
});
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstArtclBaseKey, "by-cklst", cklstSn],
|
|
});
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useUpdateCklstArtcl() {
|
|
const queryClient = useQueryClient();
|
|
|
|
return useMutation({
|
|
mutationFn: ({
|
|
cklstArtclSn,
|
|
cklstSn,
|
|
body,
|
|
}: {
|
|
cklstArtclSn: number;
|
|
cklstSn: number;
|
|
body: CklstArtclUpdateRequest;
|
|
}) => cklstArtclService.update(cklstArtclSn, cklstSn, body),
|
|
onSuccess: (_data, { cklstArtclSn, cklstSn }) => {
|
|
queryClient.invalidateQueries({ queryKey: cklstArtclBaseKey });
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstArtclBaseKey, cklstArtclSn, cklstSn],
|
|
});
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstArtclBaseKey, "page", { cklstSn }],
|
|
});
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstArtclBaseKey, "by-cklst", cklstSn],
|
|
});
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useDeleteCklstArtcl() {
|
|
const queryClient = useQueryClient();
|
|
|
|
return useMutation({
|
|
mutationFn: ({
|
|
cklstArtclSn,
|
|
cklstSn,
|
|
}: {
|
|
cklstArtclSn: number;
|
|
cklstSn: number;
|
|
}) => cklstArtclService.remove(cklstArtclSn, cklstSn),
|
|
onSuccess: (_data, { cklstSn }) => {
|
|
queryClient.invalidateQueries({ queryKey: cklstArtclBaseKey });
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstArtclBaseKey, "page", { cklstSn }],
|
|
});
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstArtclBaseKey, "by-cklst", cklstSn],
|
|
});
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useCklstRvwPage(params: CklstRvwSearchParams) {
|
|
const { cklstSn } = params;
|
|
|
|
return useQuery({
|
|
queryKey: [...cklstRvwBaseKey, "page", params],
|
|
queryFn: () => cklstRvwService.findPage(params),
|
|
enabled: cklstSn != null,
|
|
});
|
|
}
|
|
|
|
export function useCklstRvwByArtcl(
|
|
cklstSn: number | null | undefined,
|
|
cklstArtclSn: number | null | undefined,
|
|
) {
|
|
return useQuery({
|
|
queryKey: [...cklstRvwBaseKey, "by-artcl", cklstSn, cklstArtclSn],
|
|
queryFn: () => cklstRvwService.findByArtcl(cklstSn!, cklstArtclSn!),
|
|
enabled: cklstSn != null && cklstArtclSn != null,
|
|
});
|
|
}
|
|
|
|
export function useCklstRvw(params: {
|
|
cklstRvwSn: number | null | undefined;
|
|
cklstArtclSn: number | null | undefined;
|
|
cklstSn: number | null | undefined;
|
|
}) {
|
|
const { cklstRvwSn, cklstArtclSn, cklstSn } = params;
|
|
|
|
return useQuery({
|
|
queryKey: [...cklstRvwBaseKey, cklstRvwSn, cklstArtclSn, cklstSn],
|
|
queryFn: () => cklstRvwService.findById(cklstRvwSn!, cklstArtclSn!, cklstSn!),
|
|
enabled: cklstRvwSn != null && cklstArtclSn != null && cklstSn != null,
|
|
});
|
|
}
|
|
|
|
export function useCreateCklstRvw() {
|
|
const queryClient = useQueryClient();
|
|
|
|
return useMutation({
|
|
mutationFn: (body: CklstRvwSaveRequest) => cklstRvwService.create(body),
|
|
onSuccess: (_data, { cklstSn, cklstArtclSn }) => {
|
|
queryClient.invalidateQueries({ queryKey: cklstRvwBaseKey });
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstRvwBaseKey, "page", { cklstSn }],
|
|
});
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstRvwBaseKey, "by-artcl", cklstSn, cklstArtclSn],
|
|
});
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useUpdateCklstRvw() {
|
|
const queryClient = useQueryClient();
|
|
|
|
return useMutation({
|
|
mutationFn: ({
|
|
cklstRvwSn,
|
|
cklstArtclSn,
|
|
cklstSn,
|
|
body,
|
|
}: {
|
|
cklstRvwSn: number;
|
|
cklstArtclSn: number;
|
|
cklstSn: number;
|
|
body: CklstRvwUpdateRequest;
|
|
}) => cklstRvwService.update(cklstRvwSn, cklstArtclSn, cklstSn, body),
|
|
onSuccess: (_data, { cklstRvwSn, cklstArtclSn, cklstSn }) => {
|
|
queryClient.invalidateQueries({ queryKey: cklstRvwBaseKey });
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstRvwBaseKey, cklstRvwSn, cklstArtclSn, cklstSn],
|
|
});
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstRvwBaseKey, "page", { cklstSn }],
|
|
});
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstRvwBaseKey, "by-artcl", cklstSn, cklstArtclSn],
|
|
});
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useDeleteCklstRvw() {
|
|
const queryClient = useQueryClient();
|
|
|
|
return useMutation({
|
|
mutationFn: ({
|
|
cklstRvwSn,
|
|
cklstArtclSn,
|
|
cklstSn,
|
|
}: {
|
|
cklstRvwSn: number;
|
|
cklstArtclSn: number;
|
|
cklstSn: number;
|
|
}) => cklstRvwService.remove(cklstRvwSn, cklstArtclSn, cklstSn),
|
|
onSuccess: (_data, { cklstSn, cklstArtclSn }) => {
|
|
queryClient.invalidateQueries({ queryKey: cklstRvwBaseKey });
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstRvwBaseKey, "page", { cklstSn }],
|
|
});
|
|
queryClient.invalidateQueries({
|
|
queryKey: [...cklstRvwBaseKey, "by-artcl", cklstSn, cklstArtclSn],
|
|
});
|
|
},
|
|
});
|
|
}
|