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 구현 #370

Merged
merged 4 commits into from
Jan 11, 2024
Merged

노래 삭제 API 구현 #370

merged 4 commits into from
Jan 11, 2024

Conversation

khw3754
Copy link
Collaborator

@khw3754 khw3754 commented Jan 9, 2024

Issue

Overview

  • 관계에 casecade 설정을 넣어서 music 이 삭제되면 그 음악을 가지고 있는 music_playlist 와 recent_played 객체도 삭제되도록 설정했습니다.

  • db 에서 해당 음악파일과 커버사진을 저장하고 있는 폴더를 삭제하도록 구현했습니다.

  • 현재 object storage 에서 삭제하다가 오류가 생기면 DB 삭제 롤백은 안되어있어서 트랜잭션 추가가 필요합니다. (추가 예정)

  • 테스트도 해서 작동 확인을 했는데 다시 테스트하기가 번거로워서 사진은 추가하지 않겠습니다.

To Reviewers

실수한 부분이 있어보인다면 알려주세요!

* music 을 외래키로 가지는 객체는 music 이 삭제될 때 자동으로 삭제되도록 변경
* 음악이 존재하는지 확인하는 함수 추가
* 사용자가 음악을 소유하고 있는지 확인하는 함수 추가
* 음악을 삭제하는 API 구현
* 버킷에 있는 폴더도 삭제
* 트랜잭션 추가 필요
@khw3754 khw3754 added ✨ feat 기능 개발 🖥 server server labels Jan 9, 2024
@khw3754 khw3754 added this to the 👋 my milestone Jan 9, 2024
@khw3754 khw3754 self-assigned this Jan 9, 2024
@khw3754 khw3754 requested a review from sk000801 as a code owner January 9, 2024 15:29
@khw3754 khw3754 linked an issue Jan 9, 2024 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.

이외에는 말씀드릴 부분이 없는 것 같아요 ! 👍😁
고생하셨습니다 !! 트랜잭션은 이후에 구현해주셔도 될 것 같아용

Comment on lines +18 to +20
@ManyToOne(() => Music, (music) => music.music_playlist, {
onDelete: 'CASCADE',
})
Copy link
Member

Choose a reason for hiding this comment

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

엔티티에서 옵션을 걸어 삭제하는 방식은 제가 고려하지 않았던 것 같은데 훨씬 효율적일 것 같아요 제 코드도 리팩토링 해봐야겠네요 ! 👍

Comment on lines 208 to 210
const musicFilePath: string = music.music_file.slice(sliceCount, sliceCount + 41);
const coverFilePath: string = music.cover.slice(sliceCount, sliceCount + 46);
console.log(coverFilePath, musicFilePath);
Copy link
Member

@sk000801 sk000801 Jan 10, 2024

Choose a reason for hiding this comment

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

위의 저 path 변수 두 개는 이후 경로의 /uuid/image.png 이 문자열 값까지 계산하신 건가요 !?
상수로 빼도 괜찮을 것 같아요 ! (중요하진 않습니당)

아니면 slice 대신 https://~.com/ 요 부분을 replace 시키는 건 어떻게 생각하시나요 !?

그리구 console.log 빼주셔도 될 것 같아요!!

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

상수로 빼서 처리하겠습니다!

* SLICE_COUNT 상수로 처리
@khw3754 khw3754 merged commit 77199be into develop Jan 11, 2024
1 check passed
@khw3754 khw3754 deleted the server/feature/352 branch January 11, 2024 05:16
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.

노래 삭제 API
2 participants