From b05c61a65ac80af53a4825782d717ebba97a35d4 Mon Sep 17 00:00:00 2001 From: pricelees Date: Fri, 15 Aug 2025 17:19:37 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=2064=EC=9E=90=EB=A6=AC=20PK=20?= =?UTF-8?q?=EB=8F=84=EC=9E=85=EC=97=90=20=EB=94=B0=EB=A5=B8=20=ED=94=84?= =?UTF-8?q?=EB=A1=A0=ED=8A=B8=EC=97=94=EB=93=9C=EC=97=90=EC=84=9C=EC=9D=98?= =?UTF-8?q?=20=ED=83=80=EC=9E=85=20=EC=88=98=EC=A0=95(number=20->=20string?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api/member/memberTypes.ts | 4 ++-- .../src/api/reservation/reservationAPI.ts | 8 +++---- .../src/api/reservation/reservationTypes.ts | 22 +++++++++---------- frontend/src/api/theme/themeAPI.ts | 2 +- frontend/src/api/theme/themeTypes.ts | 4 ++-- frontend/src/api/time/timeAPI.ts | 4 ++-- frontend/src/api/time/timeTypes.ts | 6 ++--- frontend/src/pages/MyReservationPage.tsx | 6 ++--- frontend/src/pages/ReservationPage.tsx | 4 ++-- frontend/src/pages/admin/ReservationPage.tsx | 2 +- frontend/src/pages/admin/ThemePage.tsx | 2 +- frontend/src/pages/admin/TimePage.tsx | 2 +- frontend/src/pages/admin/WaitingPage.tsx | 4 ++-- src/main/resources/test.http | 4 ++++ 14 files changed, 39 insertions(+), 35 deletions(-) create mode 100644 src/main/resources/test.http diff --git a/frontend/src/api/member/memberTypes.ts b/frontend/src/api/member/memberTypes.ts index 45d90e86..32d4ab17 100644 --- a/frontend/src/api/member/memberTypes.ts +++ b/frontend/src/api/member/memberTypes.ts @@ -1,5 +1,5 @@ export interface MemberRetrieveResponse { - id: number; + id: string; name: string; } @@ -14,6 +14,6 @@ export interface SignupRequest { } export interface SignupResponse { - id: number; + id: string; name: string; } diff --git a/frontend/src/api/reservation/reservationAPI.ts b/frontend/src/api/reservation/reservationAPI.ts index 276ce06f..a3f23db9 100644 --- a/frontend/src/api/reservation/reservationAPI.ts +++ b/frontend/src/api/reservation/reservationAPI.ts @@ -30,7 +30,7 @@ export const searchReservations = async (params: ReservationSearchQuery): Promis }; // DELETE /reservations/{id} -export const cancelReservationByAdmin = async (id: number): Promise => { +export const cancelReservationByAdmin = async (id: string): Promise => { return await apiClient.del(`/reservations/${id}`, true); }; @@ -55,16 +55,16 @@ export const createWaiting = async (data: WaitingCreateRequest): Promise => { +export const cancelWaiting = async (id: string): Promise => { return await apiClient.del(`/reservations/waiting/${id}`, true); }; // POST /reservations/waiting/{id}/confirm -export const confirmWaiting = async (id: number): Promise => { +export const confirmWaiting = async (id: string): Promise => { return await apiClient.post(`/reservations/waiting/${id}/confirm`, {}, true); }; // POST /reservations/waiting/{id}/reject -export const rejectWaiting = async (id: number): Promise => { +export const rejectWaiting = async (id: string): Promise => { return await apiClient.post(`/reservations/waiting/${id}/reject`, {}, true); }; diff --git a/frontend/src/api/reservation/reservationTypes.ts b/frontend/src/api/reservation/reservationTypes.ts index 5bffd87f..1ab96518 100644 --- a/frontend/src/api/reservation/reservationTypes.ts +++ b/frontend/src/api/reservation/reservationTypes.ts @@ -14,7 +14,7 @@ export type ReservationStatus = | typeof ReservationStatus.WAITING; export interface MyReservationRetrieveResponse { - id: number; + id: string; themeName: string; date: string; time: string; @@ -29,7 +29,7 @@ export interface MyReservationRetrieveListResponse { } export interface ReservationRetrieveResponse { - id: number; + id: string; date: string; member: MemberRetrieveResponse; time: TimeRetrieveResponse; @@ -43,15 +43,15 @@ export interface ReservationRetrieveListResponse { export interface AdminReservationCreateRequest { date: string; - timeId: number; - themeId: number; - memberId: number; + timeId: string; + themeId: string; + memberId: string; } export interface ReservationCreateWithPaymentRequest { date: string; - timeId: number; - themeId: number; + timeId: string; + themeId: string; paymentKey: string; orderId: string; amount: number; @@ -60,13 +60,13 @@ export interface ReservationCreateWithPaymentRequest { export interface WaitingCreateRequest { date: string; - timeId: number; - themeId: number; + timeId: string; + themeId: string; } export interface ReservationSearchQuery { - themeId?: number; - memberId?: number; + themeId?: string; + memberId?: string; dateFrom?: string; dateTo?: string; } diff --git a/frontend/src/api/theme/themeAPI.ts b/frontend/src/api/theme/themeAPI.ts index c653a9e8..6cbe5c3d 100644 --- a/frontend/src/api/theme/themeAPI.ts +++ b/frontend/src/api/theme/themeAPI.ts @@ -13,6 +13,6 @@ export const mostReservedThemes = async (count: number = 10): Promise(`/themes/most-reserved-last-week?count=${count}`, false); }; -export const delTheme = async (id: number): Promise => { +export const delTheme = async (id: string): Promise => { return await apiClient.del(`/themes/${id}`, true); }; diff --git a/frontend/src/api/theme/themeTypes.ts b/frontend/src/api/theme/themeTypes.ts index d1721953..129f1fc1 100644 --- a/frontend/src/api/theme/themeTypes.ts +++ b/frontend/src/api/theme/themeTypes.ts @@ -5,14 +5,14 @@ export interface ThemeCreateRequest { } export interface ThemeCreateResponse { - id: number; + id: string; name: string; description: string; thumbnail: string; } export interface ThemeRetrieveResponse { - id: number; + id: string; name: string; description: string; thumbnail: string; diff --git a/frontend/src/api/time/timeAPI.ts b/frontend/src/api/time/timeAPI.ts index 2a2d6ac2..656f90e9 100644 --- a/frontend/src/api/time/timeAPI.ts +++ b/frontend/src/api/time/timeAPI.ts @@ -9,10 +9,10 @@ export const fetchTimes = async (): Promise => { return await apiClient.get('/times', true); }; -export const delTime = async (id: number): Promise => { +export const delTime = async (id: string): Promise => { return await apiClient.del(`/times/${id}`, true); }; -export const fetchTimesWithAvailability = async (date: string, themeId: number): Promise => { +export const fetchTimesWithAvailability = async (date: string, themeId: string): Promise => { return await apiClient.get(`/times/search?date=${date}&themeId=${themeId}`, true); }; diff --git a/frontend/src/api/time/timeTypes.ts b/frontend/src/api/time/timeTypes.ts index 408e8f7f..acb7c350 100644 --- a/frontend/src/api/time/timeTypes.ts +++ b/frontend/src/api/time/timeTypes.ts @@ -3,12 +3,12 @@ export interface TimeCreateRequest { } export interface TimeCreateResponse { - id: number; + id: string; startAt: string; } export interface TimeRetrieveResponse { - id: number; + id: string; startAt: string; } @@ -17,7 +17,7 @@ export interface TimeRetrieveListResponse { } export interface TimeWithAvailabilityResponse { - id: number; + id: string; startAt: string; isAvailable: boolean; } diff --git a/frontend/src/pages/MyReservationPage.tsx b/frontend/src/pages/MyReservationPage.tsx index a599a2e3..96102c63 100644 --- a/frontend/src/pages/MyReservationPage.tsx +++ b/frontend/src/pages/MyReservationPage.tsx @@ -26,11 +26,11 @@ const MyReservationPage: React.FC = () => { .catch(handleError); }, []); - const _cancelWaiting = (id: number) => { + const _cancelWaiting = (id: string) => { cancelWaiting(id) .then(() => { alert('예약 대기가 취소되었습니다.'); - setReservations(reservations.filter(r => r.id !== id)); + setReservations(reservations.filter(r => r.id.toString() !== id)); }) .catch(handleError); }; @@ -74,7 +74,7 @@ const MyReservationPage: React.FC = () => { {getStatusText(r.status, r.rank)} {r.status === ReservationStatus.WAITING && - } + } {r.paymentKey} {r.amount} diff --git a/frontend/src/pages/ReservationPage.tsx b/frontend/src/pages/ReservationPage.tsx index 00d3e87a..77471955 100644 --- a/frontend/src/pages/ReservationPage.tsx +++ b/frontend/src/pages/ReservationPage.tsx @@ -18,9 +18,9 @@ declare global { const ReservationPage: React.FC = () => { const [selectedDate, setSelectedDate] = useState(new Date()); const [themes, setThemes] = useState([]); - const [selectedTheme, setSelectedTheme] = useState(null); + const [selectedTheme, setSelectedTheme] = useState(null); const [times, setTimes] = useState([]); - const [selectedTime, setSelectedTime] = useState<{ id: number, isAvailable: boolean } | null>(null); + const [selectedTime, setSelectedTime] = useState<{ id: string, isAvailable: boolean } | null>(null); const paymentWidgetRef = useRef(null); const paymentMethodsRef = useRef(null); const navigate = useNavigate(); diff --git a/frontend/src/pages/admin/ReservationPage.tsx b/frontend/src/pages/admin/ReservationPage.tsx index 5f5d9b60..b4c916e3 100644 --- a/frontend/src/pages/admin/ReservationPage.tsx +++ b/frontend/src/pages/admin/ReservationPage.tsx @@ -90,7 +90,7 @@ const AdminReservationPage: React.FC = () => { .catch(handleError); }; - const deleteReservation = async(id: number) => { + const deleteReservation = async(id: string) => { if (!window.confirm('정말 삭제하시겠어요?')) { return; } diff --git a/frontend/src/pages/admin/ThemePage.tsx b/frontend/src/pages/admin/ThemePage.tsx index 2d8dc313..a47256ca 100644 --- a/frontend/src/pages/admin/ThemePage.tsx +++ b/frontend/src/pages/admin/ThemePage.tsx @@ -49,7 +49,7 @@ const AdminThemePage: React.FC = () => { .catch(handleError); } - const deleteTheme = async (id: number) => { + const deleteTheme = async (id: string) => { if (!window.confirm('정말 삭제하시겠어요?')) { return; } diff --git a/frontend/src/pages/admin/TimePage.tsx b/frontend/src/pages/admin/TimePage.tsx index 3912dc93..6772452e 100644 --- a/frontend/src/pages/admin/TimePage.tsx +++ b/frontend/src/pages/admin/TimePage.tsx @@ -62,7 +62,7 @@ const AdminTimePage: React.FC = () => { .catch(handleError); }; - const deleteTime = async (id: number) => { + const deleteTime = async (id: string) => { if (!window.confirm('정말 삭제하시겠어요?')) { return; } diff --git a/frontend/src/pages/admin/WaitingPage.tsx b/frontend/src/pages/admin/WaitingPage.tsx index 3a784377..de90dfff 100644 --- a/frontend/src/pages/admin/WaitingPage.tsx +++ b/frontend/src/pages/admin/WaitingPage.tsx @@ -29,7 +29,7 @@ const AdminWaitingPage: React.FC = () => { fetchData(); }, []); - const approveWaiting = async (id: number) => { + const approveWaiting = async (id: string) => { await confirmWaiting(id) .then(() => { alert('대기 중인 예약을 승인했어요. 결제는 별도로 진행해주세요.'); @@ -38,7 +38,7 @@ const AdminWaitingPage: React.FC = () => { .catch(handleError); }; - const denyWaiting = async (id: number) => { + const denyWaiting = async (id: string) => { await rejectWaiting(id) .then(() => { alert('대기 중인 예약을 거절했어요.'); diff --git a/src/main/resources/test.http b/src/main/resources/test.http new file mode 100644 index 00000000..193be221 --- /dev/null +++ b/src/main/resources/test.http @@ -0,0 +1,4 @@ +### GET request to example server +POST localhost:8080/savetest + +### \ No newline at end of file