Files
frontend/apps/as/src/entities/cklst/api/queries.ts
T

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