Skip to content

Conversation

@codie0226
Copy link
Collaborator

Sweepic Server PR List

⚒️develop의 최신 커밋을 pull 받았나요?

  • 최신 커밋 업데이트

🔍️ 이 PR을 통해 해결하려는 문제가 무엇인가요?

어떤 기능을 구현한건지, 이슈 대응이라면 어떤 이슈인지 PR이 열리게 된 계기와 목적을 Reviewer 들이 쉽게 이해할 수 있도록 적어 주세요
일감 백로그 링크나 다이어그램, 피그마를 첨부해도 좋아요

  • 챌린지 이미지를 업로드하고 조회할 수 있는 기능

✨ 이 PR에서 핵심적으로 변경된 사항은 무엇일까요? (핵심 작업 내용)

문제를 해결하면서 주요하게 변경된 사항들을 적어 주세요

  • 챌린지 id와 body로 이미지의 배열을 받아서 challenge-image에 업로드하는 API입니다.
export const challengeImageUpload = async (
  imageIdList: bigint[], 
  challengeId: bigint, 
  userId: bigint
): Promise<{count: number}> => {
  const duplicateChallenge = await prisma.challengeImage.findFirst({
    where: {
      challengeId: challengeId
    }
  });

  if(duplicateChallenge){
    throw new ChallengeImageUploadError({reason: `${challengeId}챌린지에 이미지가 이미 존재합니다.`});
  }
  
  const foundImage = await prisma.image.findMany({
    where: {
      mediaId: {
        in: imageIdList
      },
      userId: userId
    },
    select: {
      id: true
    }
  });

  if(foundImage.length !== imageIdList.length){
    throw new ChallengeImageMissingError({reason: '서버에 존재하지 않는 이미지가 있습니다.'});
  }

  const inputData = challengeImageUplaodBody(foundImage, challengeId);

  const upload = await prisma.challengeImage.createMany({
    data: inputData
  });

  return upload;
};

challenge-image에 챌린지가 존재하면 같은 챌린지에 사진을 넣을 수 없도록 중복 방지 처리했습니다.
image 테이블에 이미지가 존재하지 않으면 에러가 발생합니다.
최종적으로 insert된 row수와 처음 받은 배열의 길이가 달라도 에러가 반환되지만, 사진은 추가됩니다.

🤚 동작 확인

기능을 실행했을 때 정상 동작하는지 여부를 확인하고 스크린 샷을 올려주세요

imageupload
getchallenge
error1

🔖 핵심 변경 사항 외에 추가적으로 변경된 부분이 있나요?

없으면 "없음" 이라고 기재해 주세요

  • 조회 결과에 이미지의 배열이 추가됩니다.

🙏 Reviewer 분들이 이런 부분을 신경써서 봐 주시면 좋겠어요

개발 과정에서 다른 분들의 의견은 어떠한지 궁금했거나 크로스 체크가 필요하다고 느껴진 코드가 있다면 남겨주세요

🩺 이 PR에서 테스트 혹은 검증이 필요한 부분이 있을까요?

테스트가 필요한 항목이나 테스트 코드가 추가되었다면 함께 적어주세요

📌 PR 진행 시 이러한 점들을 참고해 주세요

  • Reviewer 분들은 코드 리뷰 시 좋은 코드의 방향을 제시하되, 코드 수정을 강제하지 말아 주세요.
  • Reviewer 분들은 좋은 코드를 발견한 경우, 칭찬과 격려를 아끼지 말아 주세요.
  • Review는 특수한 케이스가 아니면 Reviewer로 지정된 시점 기준으로 2일 이내에 진행해 주세요.
  • Comment 작성 시 Prefix로 P1, P2, P3 를 적어 주시면 Assignee가 보다 명확하게 Comment에 대해 대응할 수 있어요
    • P1 : 꼭 반영해 주세요 (Request Changes) - 이슈가 발생하거나 취약점이 발견되는 케이스 등
    • P2 : 반영을 적극적으로 고려해 주시면 좋을 것 같아요 (Comment)
    • P3 : 이런 방법도 있을 것 같아요~ 등의 사소한 의견입니다 (Chore)


📝 Assignee를 위한 CheckList

  • To-Do Item

@codie0226 codie0226 added ♻️ REFACTOR 기능 향상 및 리팩토링 ✨ FEAT 기능 구현 labels Feb 19, 2025
@codie0226 codie0226 self-assigned this Feb 19, 2025
@jjiinaaa jjiinaaa merged commit 21595ad into develop Feb 19, 2025
1 check passed
@jjiinaaa jjiinaaa deleted the feature/SWEP-110 branch February 19, 2025 23:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

♻️ REFACTOR 기능 향상 및 리팩토링 ✨ FEAT 기능 구현

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants