-
Notifications
You must be signed in to change notification settings - Fork 0
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
노래 삭제 API 구현 #370
Conversation
* music 을 외래키로 가지는 객체는 music 이 삭제될 때 자동으로 삭제되도록 변경
* 음악이 존재하는지 확인하는 함수 추가 * 사용자가 음악을 소유하고 있는지 확인하는 함수 추가
* 음악을 삭제하는 API 구현 * 버킷에 있는 폴더도 삭제 * 트랜잭션 추가 필요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이외에는 말씀드릴 부분이 없는 것 같아요 ! 👍😁
고생하셨습니다 !! 트랜잭션은 이후에 구현해주셔도 될 것 같아용
@ManyToOne(() => Music, (music) => music.music_playlist, { | ||
onDelete: 'CASCADE', | ||
}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
엔티티에서 옵션을 걸어 삭제하는 방식은 제가 고려하지 않았던 것 같은데 훨씬 효율적일 것 같아요 제 코드도 리팩토링 해봐야겠네요 ! 👍
server/src/music/music.service.ts
Outdated
const musicFilePath: string = music.music_file.slice(sliceCount, sliceCount + 41); | ||
const coverFilePath: string = music.cover.slice(sliceCount, sliceCount + 46); | ||
console.log(coverFilePath, musicFilePath); |
There was a problem hiding this comment.
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 빼주셔도 될 것 같아요!!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
상수로 빼서 처리하겠습니다!
* SLICE_COUNT 상수로 처리
Issue
Overview
관계에 casecade 설정을 넣어서 music 이 삭제되면 그 음악을 가지고 있는 music_playlist 와 recent_played 객체도 삭제되도록 설정했습니다.
db 에서 해당 음악파일과 커버사진을 저장하고 있는 폴더를 삭제하도록 구현했습니다.
현재 object storage 에서 삭제하다가 오류가 생기면 DB 삭제 롤백은 안되어있어서 트랜잭션 추가가 필요합니다. (추가 예정)
테스트도 해서 작동 확인을 했는데 다시 테스트하기가 번거로워서 사진은 추가하지 않겠습니다.
To Reviewers
실수한 부분이 있어보인다면 알려주세요!