diff --git a/apps/cs/app/(with-base-layout)/module/register/[sequential]/page.tsx b/apps/cs/app/(with-base-layout)/module/register/[sequential]/page.tsx new file mode 100644 index 000000000..9f1c32ff5 --- /dev/null +++ b/apps/cs/app/(with-base-layout)/module/register/[sequential]/page.tsx @@ -0,0 +1,10 @@ +import { ModifyPage as VModifyPage } from "@/pages/module"; + +export default async function ModifyPage({ + params, +}: { + params: Promise<{ sequential: string }>; +}) { + const { sequential } = await params; + return ; +} diff --git a/apps/cs/src/pages/module/api/authorization-service.ts b/apps/cs/src/pages/module/api/authorization-service.ts index 3e0621171..d68c6920a 100644 --- a/apps/cs/src/pages/module/api/authorization-service.ts +++ b/apps/cs/src/pages/module/api/authorization-service.ts @@ -19,6 +19,15 @@ export class AuthorizationsApiService implements AuthorizationsService { return response.data; } + public async getAuthorizationInfo( + authorizationNo: string, + ): Promise { + const response = await client.get( + `${ENDPOINT.USER_SERVICE.AUTHORIZATIONS}/${authorizationNo}`, + ); + return response.data; + } + public async createAuthorization( data: AuthorizationFormData, ): Promise { @@ -28,6 +37,17 @@ export class AuthorizationsApiService implements AuthorizationsService { ); return response.data; } + + public async updateAuthorization( + authorizationNo: string, + data: AuthorizationFormData, + ): Promise { + const response = await client.put( + `${ENDPOINT.USER_SERVICE.AUTHORIZATIONS}/${authorizationNo}`, + data, + ); + return response.data; + } } export const AuthorizationsApi = new AuthorizationsApiService(); diff --git a/apps/cs/src/pages/module/index.ts b/apps/cs/src/pages/module/index.ts index b1e8c3b32..fffbd617b 100644 --- a/apps/cs/src/pages/module/index.ts +++ b/apps/cs/src/pages/module/index.ts @@ -1,2 +1,3 @@ export { ModulePage } from "./ui/module-page"; export { CreatePage } from "./ui/create-page"; +export { ModifyPage } from "./ui/modify-page"; diff --git a/apps/cs/src/pages/module/model/authorizations-interface.ts b/apps/cs/src/pages/module/model/authorizations-interface.ts index 61cd849e2..114d5cb10 100644 --- a/apps/cs/src/pages/module/model/authorizations-interface.ts +++ b/apps/cs/src/pages/module/model/authorizations-interface.ts @@ -44,7 +44,14 @@ export interface AuthorizationsService { getAuthorizationsList: ( params: AuthorizationsParams, ) => Promise; + getAuthorizationInfo: ( + authorizationNo: string, + ) => Promise; createAuthorization: ( data: AuthorizationFormData, ) => Promise; + updateAuthorization: ( + authorizationNo: string, + data: AuthorizationFormData, + ) => Promise; } diff --git a/apps/cs/src/pages/module/ui/modify-page.tsx b/apps/cs/src/pages/module/ui/modify-page.tsx new file mode 100644 index 000000000..8eff7f0a8 --- /dev/null +++ b/apps/cs/src/pages/module/ui/modify-page.tsx @@ -0,0 +1,50 @@ +"use client"; + +import { useForm } from "react-hook-form"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { useMutation, useQuery } from "@tanstack/react-query"; +import { useAlertStore } from "@/shared/lib/use-alert-store"; +import { ENDPOINT } from "@/shared/config"; +import { + authorizationFormSchema, + type AuthorizationFormData, +} from "../model/authorizations-interface"; +import { AuthorizationsApi } from "../api/authorization-service"; +import { ModuleForm } from "./module-form"; + +function ModifyPage({ sequential }: { sequential: string }) { + const { setMessage: alert } = useAlertStore((state) => state); + + const { data: authorizationInfo } = useQuery({ + queryKey: [ENDPOINT.USER_SERVICE.AUTHORIZATIONS, sequential], + queryFn: () => AuthorizationsApi.getAuthorizationInfo(sequential), + }); + + const { mutateAsync: updateAuthorization } = useMutation({ + mutationFn: (data: AuthorizationFormData) => + AuthorizationsApi.updateAuthorization(sequential, data), + onSuccess: () => { + alert("수정되었습니다."); + }, + }); + + const form = useForm({ + resolver: zodResolver(authorizationFormSchema), + values: authorizationInfo, + }); + + return ( +
+
+

모듈API 수정

+
+ +
+ ); +} + +export { ModifyPage };