From 276f5185b0e28b296c53ff8ce7c03f728c6e069d Mon Sep 17 00:00:00 2001 From: HopeFullee Date: Mon, 22 Dec 2025 17:11:21 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20=EB=AA=A8=EC=9E=84=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20API=20V2=20=EC=8A=A4=ED=8E=99=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/service/group-service/index.ts | 4 ++-- src/lib/schema/group.ts | 1 + src/types/service/group.ts | 3 +-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/api/service/group-service/index.ts b/src/api/service/group-service/index.ts index cff1b79a..ee833a80 100644 --- a/src/api/service/group-service/index.ts +++ b/src/api/service/group-service/index.ts @@ -40,7 +40,7 @@ export const groupServiceRemote = () => ({ // 모임 이미지 사전 업로드 (POST /groups/images/upload) - multipart/form-data createGroup: (payload: CreateGroupPayload) => { - return api.post('/groups/create', payload); + return apiV2.post('/groups/create', payload); }, getGroupDetails: (payload: GroupIdPayload) => { @@ -60,6 +60,6 @@ export const groupServiceRemote = () => ({ }, uploadGroupImages: (payload: FormData) => { - return api.post('/groups/images/upload', payload); + return apiV2.post('/groups/images/upload', payload); }, }); diff --git a/src/lib/schema/group.ts b/src/lib/schema/group.ts index e312ec8b..a0cd3acf 100644 --- a/src/lib/schema/group.ts +++ b/src/lib/schema/group.ts @@ -18,6 +18,7 @@ export const createGroupSchema = z.object({ images: z .array( z.object({ + imageKey: z.string(), sortOrder: z.number(), imageUrl440x240: z.string(), imageUrl100x100: z.string(), diff --git a/src/types/service/group.ts b/src/types/service/group.ts index e25abfff..940247b5 100644 --- a/src/types/service/group.ts +++ b/src/types/service/group.ts @@ -81,9 +81,8 @@ export interface PreUploadGroupImagePayload { export interface PreUploadGroupImageResponse { images: { + imageKey: string; sortOrder: number; - imageUrl440x240: string; - imageUrl100x100: string; }[]; } From 7dad8e61552cfe6b49cd23465ed2b4b2bda07731 Mon Sep 17 00:00:00 2001 From: HopeFullee Date: Mon, 22 Dec 2025 20:34:34 +0900 Subject: [PATCH 2/2] =?UTF-8?q?refactor:=20=EB=AA=A8=EC=9E=84=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EC=97=85=EB=A1=9C?= =?UTF-8?q?=EB=93=9C=20API=20V2=20=EC=8A=A4=ED=8E=99=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/post-meetup/page.tsx | 16 +++--------- src/types/service/group.ts | 48 +++++++++++++++++++++++++++--------- 2 files changed, 41 insertions(+), 23 deletions(-) diff --git a/src/app/post-meetup/page.tsx b/src/app/post-meetup/page.tsx index 6da90290..6a16e467 100644 --- a/src/app/post-meetup/page.tsx +++ b/src/app/post-meetup/page.tsx @@ -16,7 +16,6 @@ import { } from '@/components/pages/post-meetup'; import { useCreateGroup } from '@/hooks/use-group/use-group-create'; import { CreateGroupFormValues, createGroupSchema } from '@/lib/schema/group'; -import { PreUploadGroupImageResponse } from '@/types/service/group'; const PostMeetupPage = () => { const { replace } = useRouter(); @@ -37,18 +36,11 @@ const PostMeetupPage = () => { onSubmit: createGroupSchema, }, onSubmit: async ({ value }) => { - const images = [] as PreUploadGroupImageResponse['images']; + value.images = value.images?.map((image, idx) => { + return { ...image, sortOrder: idx }; + }); - if (value.images) { - value.images.forEach((image, idx) => { - images.push({ - ...image, - sortOrder: idx, - }); - }); - } - - const res = await createGroup({ ...value, images: images }); + const res = await createGroup({ ...value }); replace(`/meetup/${res.id}`); }, diff --git a/src/types/service/group.ts b/src/types/service/group.ts index 940247b5..3a1aab39 100644 --- a/src/types/service/group.ts +++ b/src/types/service/group.ts @@ -83,11 +83,11 @@ export interface PreUploadGroupImageResponse { images: { imageKey: string; sortOrder: number; + imageUrl440x240: string; + imageUrl100x100: string; }[]; } -export type CreateGroupImagePayload = PreUploadGroupImageResponse; - export interface CreateGroupPayload { title: string; location: string; @@ -97,28 +97,54 @@ export interface CreateGroupPayload { tags?: string[] | null; description: string; maxParticipants: number; - images?: CreateGroupImagePayload['images'] | null; + images?: { + imageKey: string; + sortOrder: number; + }[]; } export interface CreateGroupResponse { id: number; title: string; - location: string; - locationDetail?: string | null; + status: 'RECRUITING' | 'FULL' | 'FINISHED'; + address: { + location: string; + locationDetail: string; + }; startTime: string; - endTime?: string; - tags?: string[] | null; + endTime: string; + tags: string[]; description: string; participantCount: number; maxParticipants: number; + createdAt: string; + updatedAt: string; createdBy: { userId: number; nickName: string; - profileImage?: string | null; + profileImage: string; + profileMessage: string; }; - createdAt: string; - updatedAt: string; - images?: CreateGroupImagePayload['images'] | null; + myMembership?: { + groupUserId: number; + role: 'HOST' | 'MEMBER'; + status: 'ATTEND' | 'LEFT'; + joinedAt: string; + leftAt: string; + } | null; + images: { + groupImageId: number; + imageKey: string; + sortOrder: number; + variants: { + variantId: number; + type: 'CARD_440_240' | 'THUMBNAIL_100_100'; + width: number; + height: number; + format: 'WEBP'; + imageUrl: string; + }[]; + }[]; } export interface GetGroupDetailsResponse {