Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
❗ 배경
🔧 작업 내역
api path 수정
swagger 수정
coordinate range를 이용한 여정 조회 비지니스 로직 수정
casecade 적용
📝 리뷰 노트
api path 수정
기존의 api는 api만으로 어떤 작업을 수행할 지 모호했습니다.
기존 body에 들어가는 id를 path로 적용함으로써 테이블의 관계를 api를 통해 보다 더 잘 표현할 수 있도록 했습니다.
swagger 수정
api version 2 적용에 따라 기존 api에 적용하던 dto 및 entity를 새로 만들어 적용한 api가 존재했습니다.
그래서 swagger의 전반적인 수정을 진행했습니다.
기존 api 문서는 table 입출력을 기준으로 나눠 api 마다 api tag를 달아두면 따로 수정할 필요가 없었습니다.
이번 api 변경에 따라 테이블을 기준으로 나누는 것은 api 문서의 가독성을 해친다고 판단해서 controller router마다 api tag를 따로 지정해 분류했습니다.
coordinate range를 이용한 여정 조회 비지니스 로직 수정
기존 range를 통한 journey 조회 시 진행 중인 journey가 있을 시 오류가 발생했습니다.
원인은 진행 중인 journey는 모든 필수 데이터가 채워지지 않아 null의 데이터를 통해 로직을 수행하는 과정에서 생겼습니다.
그래서 typeorm의 NOT(IsNull())f를 통해 완료되지 않은 journey는 불러오지 않도록 수정했습니다.
casecade 적용
journey를 삭제하는 과정에서 foreign key 설정에서 on delete가 restrict로 되어 있어 journey 삭제 로직이 오류를 발생시켰습니다.
entity에 casecade를 적용하고 mysql의 workbench를 통해 restrict에서 casecade로 변경하여 적용했습니다.
📸 스크린샷