Skip to content

Commit

Permalink
모임개설API 리팩토링 (#900)
Browse files Browse the repository at this point in the history
* refactor: 모임 상세 조회 API 마이그레이션

* Delete src/api/API_LEGACY/meeting/index.ts

* fix: prettier 오류 해결

* fix: Data 구조 분해 및 타입 지정

* fix: ESLint 오류 해결

* refactor: 데이터 구조 변경

* refactor: getMeeting v2 마이그레이션

* fix: mStartDate, mEndDate 속성 없음 이슈 해결

* fix: 타입 업데이트

* fix: 타입 업데이트
  • Loading branch information
j-nary authored Oct 1, 2024
1 parent 01ab1de commit 095e89d
Show file tree
Hide file tree
Showing 11 changed files with 30 additions and 29 deletions.
5 changes: 2 additions & 3 deletions pages/edit/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ const EditPage = () => {
enabled: !!id,
});
const { data: formData } = query;

const { mutateAsync, isLoading: isSubmitting } = useMutation({
mutationFn: ({ id, formData }: { id: string; formData: FormType }) => updateMeeting(id, formData),
onSuccess: () => {
Expand Down Expand Up @@ -89,8 +88,8 @@ const EditPage = () => {
detail: {
desc: formData?.desc,
processDesc: formData?.processDesc,
mStartDate: dayjs(formData?.mStartDate).format('YYYY.MM.DD'),
mEndDate: dayjs(formData?.mEndDate).format('YYYY.MM.DD'),
mStartDate: dayjs(formData?.getmStartDate).format('YYYY.MM.DD'),
mEndDate: dayjs(formData?.getmEndDate).format('YYYY.MM.DD'),
leaderDesc: formData?.leaderDesc,
isMentorNeeded: formData?.isMentorNeeded,
joinableParts,
Expand Down
8 changes: 4 additions & 4 deletions src/api/API_LEGACY/meeting/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,21 @@ import {
getMeetingPeopleList,
PostApplicationRequest,
MeetingPeopleResponse,
MeetingResponse,
postApplication,
deleteApplication,
updateApplication,
UpdateApplicationRequest,
downloadMeetingMemberCSV,
getGroupBrowsingCard,
GroupBrowsingCardDetail,
GetMeetingResponse,
} from '.';

interface UseQueryGetMeetingParams {
params: {
id: string;
};
useQueryOptions?: UseQueryOptions<MeetingResponse>;
useQueryOptions?: UseQueryOptions<GetMeetingResponse>;
}

/**
Expand Down Expand Up @@ -85,10 +85,10 @@ export const useQueryMeetingListOfAll = () => {
export const useQueryGetMeeting = ({
params,
useQueryOptions,
}: UseQueryGetMeetingParams): UseQueryResult<MeetingResponse> => {
}: UseQueryGetMeetingParams): UseQueryResult<GetMeetingResponse> => {
const { id } = params;

return useQuery<MeetingResponse>({
return useQuery<GetMeetingResponse>({
queryKey: ['getMeeting', id],
queryFn: () => {
return getMeeting(id);
Expand Down
6 changes: 4 additions & 2 deletions src/api/API_LEGACY/meeting/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,10 @@ export const fetchMeetingListOfAll = async ({
);
};

export const getMeeting = async (id: string): Promise<MeetingResponse> => {
return (await api.get<PromiseResponse<MeetingResponse>>(`/meeting/${id}`)).data.data;
export type GetMeetingResponse =
paths['/meeting/v2/{meetingId}']['get']['responses']['200']['content']['application/json;charset=UTF-8'];
export const getMeeting = async (id: string): Promise<GetMeetingResponse> => {
return (await api.get<GetMeetingResponse>(`/meeting/v2/${id}`)).data;
};

/**
Expand Down
6 changes: 3 additions & 3 deletions src/api/API_LEGACY/user/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { GroupInfo } from '@components/feed/Modal/FeedFormPresentation';
import { api, PromiseResponse } from '../..';
import { MeetingResponse } from '../meeting';
import { api } from '../..';
import { GetMeetingResponse } from '../meeting';
import { paths } from '@/__generated__/schema2';

/**
Expand Down Expand Up @@ -38,7 +38,7 @@ export interface ApplyResponse {
id: number;
content: string;
status: ApplicationStatusType;
meeting: MeetingResponse;
meeting: GetMeetingResponse;
user: UserResponse;
}

Expand Down
4 changes: 2 additions & 2 deletions src/api/post/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { MeetingResponse } from '@api/API_LEGACY/meeting';
import { GetMeetingResponse } from '@api/API_LEGACY/meeting';
import { UserResponse } from '@api/API_LEGACY/user';
import { FormCreateType, FormEditType } from '@components/feed/Modal/feedSchema';
import { Data, api, apiV2 } from '..';
Expand All @@ -14,7 +14,7 @@ export interface PostResponse {
likeCount: number;
isLiked: boolean;
user: Pick<UserResponse, 'id' | 'name' | 'profileImage'>;
meeting: Pick<MeetingResponse, 'id' | 'title' | 'imageURL' | 'category'>;
meeting: Pick<GetMeetingResponse, 'id' | 'title' | 'imageURL' | 'category'>;
}

export const createPost = async (formData: FormCreateType) => {
Expand Down
4 changes: 2 additions & 2 deletions src/components/page/meetingDetail/Carousel/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import Slider from 'react-slick';
import { styled } from 'stitches.config';
import NextArrow from './NextArrow';
import 'slick-carousel/slick/slick.css';
import { ImageURLType } from '@api/API_LEGACY/meeting';
import { paths } from '@/__generated__/schema2';

interface CarouselProps {
imageList: ImageURLType[];
imageList: paths['/meeting/v2/{meetingId}']['get']['responses']['200']['content']['application/json;charset=UTF-8']['imageURL'];
}

const Carousel = ({ imageList }: CarouselProps) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import 'dayjs/locale/ko';
dayjs.locale('ko');
import { PART_NAME } from '@constants/option';
import { useCallback, useRef, useState } from 'react';
import { MeetingResponse } from '@api/API_LEGACY/meeting';
import { GetMeetingResponse } from '@api/API_LEGACY/meeting';

interface InformationPanelProps {
detailData: MeetingResponse;
detailData: GetMeetingResponse;
}

const InformationPanel = ({ detailData }: InformationPanelProps) => {
Expand All @@ -25,8 +25,8 @@ const InformationPanel = ({ detailData }: InformationPanelProps) => {
{
id: 1,
title: '활동 기간',
content: `${dayjs(detailData?.mStartDate ?? '').format('YYYY.MM.DD (ddd)')} ~ ${dayjs(
detailData?.mEndDate ?? ''
content: `${dayjs(detailData?.getmStartDate ?? '').format('YYYY.MM.DD (ddd)')} ~ ${dayjs(
detailData?.getmEndDate ?? ''
).format('YYYY.MM.DD (ddd)')}`,
},
{
Expand All @@ -41,7 +41,7 @@ const InformationPanel = ({ detailData }: InformationPanelProps) => {
partList: detailData?.joinableParts?.map(key => PART_NAME[key]),
//'이런 사람을 찾아요' Input이 사라지면서 해당 객체의 content는 삭제 됨
//렌더링은 되어야하므로 truthy값으로 문자열 'NULL'을 삽입
content: detailData?.targetDesc ?? 'NULL',
content: 'NULL',
},
{
id: 4,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { paths } from '@/__generated__/schema2';
import ProfileDefaultIcon from '@assets/svg/profile_default.svg?rect';
import { APPROVAL_STATUS, EApprovalStatus } from '@constants/option';
import { ApplyResponse } from '@api/API_LEGACY/user';
import { styled } from 'stitches.config';

interface RecruitmentStatusProps {
recruitmentStatusList: ApplyResponse[];
recruitmentStatusList: paths['/meeting/v2/{meetingId}']['get']['responses']['200']['content']['application/json;charset=UTF-8']['appliedInfo'];
}

const RecruitmentStatusList = ({ recruitmentStatusList }: RecruitmentStatusProps) => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import Link from 'next/link';
import { styled } from 'stitches.config';
import { ApplyResponse } from '@api/API_LEGACY/user';
import RecruitmentStatusList from './RecruitmentStatusList';
import ArrowSmallRightIcon from '@assets/svg/arrow_small_right.svg';
import { ampli } from '@/ampli';
import { paths } from '@/__generated__/schema2';

interface RecruitmentStatusModalContentProps {
meetingId: number;
appliedInfo: ApplyResponse[];
appliedInfo: paths['/meeting/v2/{meetingId}']['get']['responses']['200']['content']['application/json;charset=UTF-8']['appliedInfo'];
isHost: boolean;
isApplied: boolean;
}
Expand Down
4 changes: 2 additions & 2 deletions src/components/page/meetingDetail/MeetingController/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import ProfileConfirmModal from './Modal/Confirm/ProfileConfirmModal';
import GuestConfirmModal from './Modal/Confirm/GuestConfirmModal';
import ApplicationModalContent from './Modal/Content/ApplicationModalContent';
import RecruitmentStatusModalContent from './Modal/Content/RecruitmentStatusModalContent';
import { PostApplicationRequest, MeetingResponse } from '@api/API_LEGACY/meeting';
import { PostApplicationRequest, GetMeetingResponse } from '@api/API_LEGACY/meeting';
import { playgroundURL } from '@constants/url';
import { ERecruitmentStatus, RECRUITMENT_STATUS } from '@constants/option';
import ProfileDefaultIcon from '@assets/svg/profile_default.svg?rect';
Expand All @@ -26,7 +26,7 @@ import ButtonLoader from '@components/loader/ButtonLoader';
import { useDialog } from '@sopt-makers/ui';

interface DetailHeaderProps {
detailData: MeetingResponse;
detailData: GetMeetingResponse;
mutateMeetingDeletion: UseMutateFunction<
{
statusCode: number;
Expand Down
4 changes: 2 additions & 2 deletions src/components/page/meetingManagement/MeetingInformation.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { useRouter } from 'next/router';
import { styled } from 'stitches.config';
import ArrowMediumRightGrayIcon from '@assets/svg/arrow_medium_right_gray.svg';
import { MeetingResponse } from '@api/API_LEGACY/meeting';
import { GetMeetingResponse } from '@api/API_LEGACY/meeting';
import { ERecruitmentStatus, RECRUITMENT_STATUS } from '@constants/option';
import Link from 'next/link';

interface MeetingInformationProps {
meetingData: MeetingResponse;
meetingData: GetMeetingResponse;
}

const MeetingInformation = ({ meetingData }: MeetingInformationProps) => {
Expand Down

0 comments on commit 095e89d

Please sign in to comment.