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

Refactor: 달성 기록 API v1 리팩터링 #309

Merged
merged 2 commits into from
Nov 19, 2024

Conversation

hee9841
Copy link
Collaborator

@hee9841 hee9841 commented Nov 18, 2024

🔗 이슈 연결

🚀 구현한 API

  • GET /api/v1/scale/course

💡 반영할 내용 및 변경 사항 요약

  • 달성 기록 API를 리팩터링 합니다.
  • 서비스 단에서 전체 코스(달성한 코스 리스트, 현재 코스, 남은 코스 리스트)와 달성 정보(전체 코스, 전체 코스의 거리, 사용자가 달린 전체 거리)를 리턴할 수 있게 getAchievements 함수를 변경합니다.
  • v1의 리스펀스 관련 데이터 가공을 Controller와 ScaleCoursesResponse에서 처리합니다.

🔍 리뷰 요청/참고 사항

  • 현재 코스의 메세지 형태가 변경되어서 V1과 V2로 나누게 되었습니다.
  • Controller와 ReponseDto를 적절히 구성했는지 잘 모르겠습니다. 혹시 좋은 의견 있으면 주세요!
  • v1 리턴 형식이 맞는지 간단하게 컨트롤러 모킹해서 테스트를 추가했습니다.
  • 리팩터링 하면서 형식이 잘못된 부분이 있는지 크로스 체크 부탁드려요! (제가 구현했던 부분이 아니고, 현재 서비스에 바로 반영되고 있는 API라서 꼼꼼히 확인 부탁드립니다 🙏 )

- 서비스 단에서 전체 코스 리스트(달성한, 달성하지 않은, 현재) 및 달성 기록의 정보를 리턴하도록 구현(CoursesDto 반환)
- 바뀐 서비스 단에 맞게 서비스 재 구성
- ScaleCoursesResponse 및 ScaleControllerV1에서 데이터 가공
@hee9841 hee9841 added the refactor 코드 리팩토링 label Nov 18, 2024
@hee9841 hee9841 self-assigned this Nov 18, 2024
@hee9841 hee9841 requested a review from Jaewon-pro November 18, 2024 09:57
Copy link
Member

@Jaewon-pro Jaewon-pro left a comment

Choose a reason for hiding this comment

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

👍👍

* (ex. 2코스라면, 1코스 totalMeter + 2코스 totalMeter의 값)
* @param achievedAt 달성한 날짜, 달성하지 않으면 null
*/
@Schema(name = "course", description = "코스")
Copy link
Member

Choose a reason for hiding this comment

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

application 계층에 있는 dto 클래스는 스웨거(컨트롤러 계층)이 없어야 할 것 같아요!

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

V2 만드는 PR에 해당 부분 수정해서 올릴게요!

import static org.mockito.BDDMockito.given;

@ExtendWith(MockitoExtension.class)
class ScaleControllerTest {
Copy link
Member

Choose a reason for hiding this comment

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

ControllerTest의 경우에는 Mockito로 하기 보다는 mock mvc로 하면 좋을 것 같아요

이것도 예제를 추가하려 했는데, 환경 설정 작업량이 많아져서 제가 별도의 이슈에서 처리하면 좋을 것 같아요

일단 이 테스트로 하고, 제가 추후 작업에서 mock mvc를 이용해 테스트하도록 수정하면 어떨까요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

다음 회의 때 mock mvc로 사용하자고 이야기할려고 했었는데!
좋습니다 👍

@hee9841 hee9841 merged commit ee185e1 into main Nov 19, 2024
1 check passed
@hee9841 hee9841 deleted the refactor/#303/scale-courses branch November 19, 2024 10:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactor 코드 리팩토링
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants