From c6814a65f9761e137bd84bd04d7eeb5d207c0908 Mon Sep 17 00:00:00 2001 From: bicochan Date: Fri, 18 Apr 2025 16:04:22 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=BD=98=ED=85=90=EC=B8=A0=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20=EC=9E=91=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entities/content/api/contents-service.ts | 9 +++++-- .../content/model/contents-interface.ts | 2 +- apps/cs/src/pages/contents/ui/modify-page.tsx | 25 ++++++++++++------- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/apps/cs/src/entities/content/api/contents-service.ts b/apps/cs/src/entities/content/api/contents-service.ts index eedc25c54..792ffd92e 100644 --- a/apps/cs/src/entities/content/api/contents-service.ts +++ b/apps/cs/src/entities/content/api/contents-service.ts @@ -59,8 +59,13 @@ export class ContentsApiService implements ContentsService { return response.data; } - public async deleteContents(contsSn: number): Promise { - await client.delete(`${ENDPOINT.CMS_SERVICE.CONTENTS}/${contsSn}`); + public async deleteContents( + contsSn: number, + contsVer: number, + ): Promise { + await client.delete( + `${ENDPOINT.CMS_SERVICE.CONTENTS_DETAILS}/${contsSn}/${contsVer}`, + ); } } diff --git a/apps/cs/src/entities/content/model/contents-interface.ts b/apps/cs/src/entities/content/model/contents-interface.ts index 773cdc161..b77c28742 100644 --- a/apps/cs/src/entities/content/model/contents-interface.ts +++ b/apps/cs/src/entities/content/model/contents-interface.ts @@ -90,5 +90,5 @@ export interface ContentsService { contsVer: number, data: ContentsFormData, ): Promise; - deleteContents(contsSn: number): Promise; + deleteContents(contsSn: number, contsVer: number): Promise; } diff --git a/apps/cs/src/pages/contents/ui/modify-page.tsx b/apps/cs/src/pages/contents/ui/modify-page.tsx index e37cd1563..ab11d62ee 100644 --- a/apps/cs/src/pages/contents/ui/modify-page.tsx +++ b/apps/cs/src/pages/contents/ui/modify-page.tsx @@ -34,7 +34,7 @@ function ModifyPage({ sequential }: { sequential: string }) { queryKey: [ENDPOINT.CMS_SERVICE.CONTENTS_DETAILS, sequential], queryFn: () => ContentsApi.getContentsVersionList({ - contsSn: Number(sequential), + contsSn: contsSn, page: 0, size: 100, }), @@ -42,8 +42,7 @@ function ModifyPage({ sequential }: { sequential: string }) { const { data: contentsDetail } = useQuery({ queryKey: [ENDPOINT.CMS_SERVICE.CONTENTS_DETAILS, contentsVersion], - queryFn: () => - ContentsApi.getLatestContentsInfo(Number(sequential), contentsVersion), + queryFn: () => ContentsApi.getLatestContentsInfo(contsSn, contentsVersion), enabled: !!contentsVersion, }); @@ -59,21 +58,28 @@ function ModifyPage({ sequential }: { sequential: string }) { const { mutateAsync: updateContents } = useMutation({ mutationFn: (data: ContentsFormData) => - ContentsApi.updateContents( - Number(sequential), - contentsDetail?.contsVer ?? 0, - data, - ), + ContentsApi.updateContents(contsSn, contentsDetail?.contsVer ?? 0, data), onSuccess: () => { alert("수정되었습니다."); }, }); + const { mutateAsync: deleteContents } = useMutation({ + mutationFn: () => ContentsApi.deleteContents(contsSn, contentsVersion), + onSuccess: () => { + alert("삭제되었습니다."); + queryClient.invalidateQueries({ + queryKey: [ENDPOINT.CMS_SERVICE.CONTENTS_DETAILS, sequential], + }); + }, + }); + const form = useForm({ resolver: zodResolver(contentsFormSchema), values: contentsDetail, }); + const contsSn = Number(sequential); const isApprovedContents = contentsDetail?.aprvCd === CONTENTS_APPROVAL_STATUS.APPROVED; @@ -120,9 +126,10 @@ function ModifyPage({ sequential }: { sequential: string }) { );