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: 초대링크로 프로젝트의 프리뷰 조회하는 API 구현 #338

Merged
merged 1 commit into from
Sep 23, 2024

Conversation

choyoungwoo9
Copy link
Collaborator

@choyoungwoo9 choyoungwoo9 commented Sep 23, 2024

🎟️ 태스크

프로젝트 정보 반환 API 개발(UUID로 조회)

✅ 작업 내용

  • 컨트롤러
    • 프로젝트 초대 브리뷰 반환하는 메서드 구현
  • 서비스
    • 초대링크로 프로젝트의 일부 정보를 반환하는 메서드 구현
  • 레포지토리
    • 프로젝트, 프로젝트 회원을 조인해서 반환하는 메서드 구현
  • 프로젝트 프리뷰 조회 E2E 테스트 추가

🤔 고민 및 의논할 거리

  • 서비스에서 프로젝트의 전체 정보를 조회해 컨트롤러에서 필요한 정보를 선별해서 반환하는게 아니라 서비스에서 일부분의 정보만을 반환하는 서비스 메서드를 만들었습니다.
  • 왜냐하면 프로젝트의 멤버가 아닌 일반 회원이 컨트롤러에서 서비스의 전체정보 메서드를 사용했을때 추후 컨트롤러의 구현이 바뀌는 이유로 프로젝트의 원치않은 정보가 노출되는것이 우려되었기 때문입니다.
  • 따라서 서비스는 Project 엔티티 전체를 반환하지 않고, DTO 클래스로 ProjectBriefInfoDto를 정의해 초대를 요청하는 회원이 볼수있는 수준의 정보만을 제공하게 구현했습니다.

  • 프로젝트와 프로젝트에 참여한 멤버 리스트를 반환하는 레포지토리 메서드에서 Project or Null을 반환하지 않고 Project만을 반환하게 구현했습니다.
  • 프로젝트가 없는 상황에서 null을 반환하는것이 자연스러울 수 있지만 읽는 사람에 따라 모호한 표현이라고 느껴질 수 있다는 의견에 동의해 프로젝트가 없는경우에는 해당 상황을 구체적으로 적어 throw하게끔 했습니다.
  • 현재 다른 메서드들은 NULL을 매개변수로 받거나 사용하는것이 꽤 있는데 추후 리팩토링할 생각입니다.

- 컨트롤러
  - 프로젝트 초대 브리뷰 반환하는 메서드 구현
- 서비스
  - 초대링크로 프로젝트의 일부 정보를 반환하는 메서드 구현
- 레포지토리
  - 프로젝트, 프로젝트 회원을 조인해서 반환하는 메서드 구현
- 프로젝트 프리뷰 조회 E2E 테스트 추가
@choyoungwoo9 choyoungwoo9 reopened this Sep 23, 2024
@choyoungwoo9 choyoungwoo9 merged commit c346071 into dev Sep 23, 2024
2 checks passed
@choyoungwoo9 choyoungwoo9 deleted the feature/get-project-invite-info branch September 23, 2024 10:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant