Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feat] 모각코 참가자 관련 로직 구현 및 Swagger 설정 #143

Merged
merged 4 commits into from
Nov 23, 2023

Conversation

ldhbenecia
Copy link
Member

@ldhbenecia ldhbenecia commented Nov 22, 2023

설명

모각코에 다른 사용자들이 참가, 참가 취소, 참가자 확인하는 API를 작성합니다.

완료한 기능 명세

  • 모각코 참가
  • 모각코 참가 취소
  • 모각코 참가자 확인
  • Swagger

스크린샷

스크린샷 기록소

리뷰 요청 사항

현재 Swagger 설정 부분 코드가 상당히 더럽습니다.
1차원적으로 깎지 않고 바로 작성했습니다.

chatGPT로 한번 깎아보려고 했는데 코드 바꾸고 swagger를 본 결과 많이 달라져서 Reset Hard 처리하였습니다..
우선 swagger를 짜는데 생각보다 체력과 안구에 힘이 드는 관계로 프로젝트 마무리 즈음에 코드 정리를 할 때 시도해보면 좋을 것 같습니다.

@ldhbenecia ldhbenecia added ✨ enhancement 개선 또는 피드백 반영 🚀 feat 💻 Back-end labels Nov 22, 2023
@ldhbenecia ldhbenecia self-assigned this Nov 22, 2023
@ldhbenecia ldhbenecia requested a review from ccxz84 as a code owner November 22, 2023 12:50
@ldhbenecia ldhbenecia changed the title [Feat] 모각코 참가자 구현 [Feat] 모각코 참가자 관련 로직 구현 및 Swagger 설정 Nov 22, 2023
Copy link
Collaborator

@ccxz84 ccxz84 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: 로직에 큰 문제는 없어보입니다. 제가 코멘트 한 부분만 소명되면 머지해도 좋습니다.


const existingParticipant = await this.prisma.participant.findUnique({
where: {
postId_userId: {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

얜 다른 where랑 구조가 좀 다르네요? postId_userId 이유가 있나요?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

where 옵션은 조회 조건을 지정하는데, 해당 부분은 중첩된 객체로 구성되어 있습니다. 구체적으로는 postId_userId라는 객체 속성을 가지고 있습니다.

처음에 where로 코드를 작성했는데 오류가 나서 chatGPT한테 물어봤는데 다음과 같이 수정해줘서 코드를 작성했습니다.


async cancelMogacoJoin(id: number, member: Member): Promise<void> {
const mogaco = await this.prisma.mogaco.findUnique({
where: { id, deletedAt: null },
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 라인은 조건 두개여도 잘되는거 같은데요

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

postId_userId는 Prisma에서 사용되는 복합 키(composite key)의 일부입니다. 이 키는 participant 테이블에서 두 개의 컬럼을 합쳐서 하나의 고유한 식별자로 사용하는 방식입니다.

여기서 postId는 Mogaco 게시물의 ID이고, userId는 참가자(사용자)의 ID입니다. 이 두 값이 결합되어서 postId_userId로 사용되고, 이를 통해 특정 Mogaco 게시물에 대한 특정 사용자의 참가 여부를 확인할 수 있습니다.

예를 들어, 특정 Mogaco 게시물에 참가한 사용자의 ID가 1이라면, 이를 postId_userId로 표현하면 { postId: 특정게시물ID, userId: 1 }이 됩니다. 이렇게 복합 키를 사용함으로써 특정 Mogaco 게시물과 사용자의 조합이 고유하게 식별되도록 합니다.

저도 확실한 이유에 대해 몰라서 좀 더 찾아봤습니다.
질문 감사합니다 백지님!!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저게 where의 and 조건이라는 얘길까요? 전 이해가 잘 안되네요

@ldhbenecia ldhbenecia merged commit 7fdf2ed into boostcampwm2023:develop Nov 23, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💻 Back-end ✨ enhancement 개선 또는 피드백 반영 🚀 feat
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEATURE] 모각코 참가 및 참가 취소 구현 및 Swagger
4 participants