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

플레이리스트 조회 API #153

Merged
merged 6 commits into from
Nov 23, 2023
Merged

플레이리스트 조회 API #153

merged 6 commits into from
Nov 23, 2023

Conversation

khw3754
Copy link
Collaborator

@khw3754 khw3754 commented Nov 22, 2023

Issue

Overview

  • GET /playlists 플레이리스트 조회

  • GET /playlists/{playlistId} 플레이리스트에 들어있는 음악 조회

  • 응답은 Swagger 참고

  • 플레이리스트에 이미 추가된 음악을 추가 요청했을 때 400 ALREADY_ADDED 응답

Screenshot

  • GET /playlists 플레이리스트 조회
스크린샷 2023-11-23 오전 2 10 38
  • 플레이리스트에 이미 추가된 음악을 추가 요청했을 때
스크린샷 2023-11-23 오전 2 54 40
  • GET /playlists/{playlistId} 플레이리스트에 들어있는 음악 조회
스크린샷 2023-11-23 오전 4 18 11

To Reviewers

service 에서 DB 에 접근하는 로직이 길어져서 가독성을 망친다고 생각해 Active Record 패턴을 적용해서 Entity 내에 DB 접근 로직을 넣었습니다. service 계층에서 조금이라도 가독성이 망가진다면 Active Record 패턴을 적극적으로 사용하는 것이 좋을 것 같다고 생각합니다!
참고자료

* GET /playlists 로 사용자가 가진 플레이리스트 조회
* json 형태로 응답
* 음악을 추가했을 때 플레이리스트의 update_at 필드를 갱신하도록 구현
* 플레이리스트에 이미 추가된 음악이라면 400 응답
* 플레이리스트에 있는 음악들의 정보를 응답
* 긴 로직에 대해서 Active Record 패턴 적용
* service 에서 가독성 증가
@khw3754 khw3754 added ✨ feat 기능 개발 🖥 server server labels Nov 22, 2023
@khw3754 khw3754 added this to the ⏯️ playlist milestone Nov 22, 2023
@khw3754 khw3754 self-assigned this Nov 22, 2023
@khw3754 khw3754 linked an issue Nov 22, 2023 that may be closed by this pull request
Copy link
Member

@sk000801 sk000801 left a comment

Choose a reason for hiding this comment

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

Nest 관련 부분은 형운님 코드 보고 배울 점이 많은 것 같아요 매번 고생 많으심니다 😊👍

@JoinColumn({ name: 'playlist_id' })
playlist: Playlist;

static async getMusicListByPlaylistId(playlistId: number): Promise<Music[]> {
Copy link
Member

Choose a reason for hiding this comment

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

이게 엔티티에 들어간다는게 생소하지만 Custom Repository 만드는 것보다 현재는 이게 나을 것 같아요 👍

this.playlistRepository.save(targetPlaylist);
}

async getUserPlaylists(userId: string): Promise<Playlist[]> {
Copy link
Member

Choose a reason for hiding this comment

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

DB에 접근하는 코드 불러오는 거니까 예외 처리 (혹시나 DB로의 접근이 실패할 경우?) try-catch 넣어주시면 좋겠습니당 😊

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

반영하고 merge 하겠습니다!

* 서버 DB 조회 에러 처리 추가
@khw3754 khw3754 merged commit fb89128 into develop Nov 23, 2023
1 check passed
@khw3754 khw3754 deleted the server/feature/36 branch November 23, 2023 01:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ feat 기능 개발 🖥 server server
Projects
None yet
Development

Successfully merging this pull request may close these issues.

플레이 리스트 조회
2 participants