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

[feat]: 공연 단건 정보 조회 API 추가 #33

Merged
merged 20 commits into from
Dec 24, 2023

Conversation

ssssujini99
Copy link
Contributor

📄 무엇을 개발했나요?

  • 공연 단건 정보 조회 controller, application, repository 구현 및 각 레이어 별 테스트까지 구현 완료

🍸 무엇을 집중적으로 리뷰해야할까요?

  • 네이밍, 컨벤션 확인
  • application 레이어 및 mapper 에서 제대로 매핑되었는지 한번 더 확인 부탁드립니다

@ssssujini99 ssssujini99 added the ✏️ Feat 기능 개발 label Dec 24, 2023
@ssssujini99 ssssujini99 added this to the 1차 스프린트 milestone Dec 24, 2023
@ssssujini99 ssssujini99 self-assigned this Dec 24, 2023
@ssssujini99
Copy link
Contributor Author

conflict 는 이따 밥먹고 제가 해결해놓겠습니다!

Copy link

🦞 Test Coverage Report

Overall Project NaN% NaN% 🟢

There is no coverage information present for the Files changed

Copy link
Member

@EunChanNam EunChanNam left a comment

Choose a reason for hiding this comment

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

리뷰 마쳤구요 고생하셨습니다~~ 👏
제 의견 관련해서 코멘트 몇개 달았구요
전체적으로 @AllArgumentCustructor 를 사용하셨는데, 컨벤션에서 안쓰기로 한 부분인것같아서 없애고 별도로 생성자로 만드는게 좋을 것 같아요!
단순히 테스트용으로 사용하는 용도로 특별한 검증없는 단순한 생성자여도 상관없을 것 같아요!
저는 이런 테스트용 생성자정도는 열려있어도 무방하다고 생각합니다 ㅎㅎ

그리고 탭 인덴트가 안맞는거같은데 확인 부탁드려요 ㅜㅜ 😢

Comment on lines 33 to 36
Optional<Show> showOptional = showRepository.findById(showId);
if (showOptional.isEmpty()) {
throw new NotFoundException(ShowErrorCode.SHOW_NOT_FOUND);
}
Copy link
Member

Choose a reason for hiding this comment

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

orElseThrow() 로 처리하는게 어떨까요? 더 깔끔할거같아요 ㅎㅎ

import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity
@Getter
@Table(name = "show_table")
@NoArgsConstructor
@AllArgsConstructor
Copy link
Member

Choose a reason for hiding this comment

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

저희 @AllArgsConstructor 사용 안하기로 컨벤션 정했던거같아요!
그리고 이 생성자가 꼭 필요한가요?? 만약 필요하다면 별도로 생성자 구현하는게 좋을 것 같아요!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

테스트 시 데이터 insert를 위해서 필요해서 만들었습니다..!!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

넵 이거 생성자 추가로 변경하겠습니당

Comment on lines 118 to 126

// when

// then
assertThrows(
NotFoundException.class,
() -> showService.getShowDetailInfo(1L)
);
Copy link
Member

Choose a reason for hiding this comment

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

비어있는 given 은 없애도 될 것 같고, then 부분에서 when 행위도 하니까 // when, then 이렇게 묶는게 어떨까요?
그리고 검증에 예외 메세지도 같이 검증해주면 좋을거같아요! 아마 해당 메소드도 메세지 필드추가할 수 있는거로 압니당 ㅎㅎ

Copy link
Member

Choose a reason for hiding this comment

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

저는 findById 같이 DataJpa 가 짜주는 쿼리정도는 테스트 안해도 된다고 생각해요! 물론 열심히 짜신건 고생하셨습니다...!

Comment on lines +31 to +40
show.getShowPeriod().getStartDate(),
show.getShowPeriod().getEndDate(),
show.getShowTime().getTotalMinutes(),
show.getShowTime().getIntermissionMinutes(),
show.getShowAgeLimit(),
new PlaceDetailsInfo(
show.getPlace().getName(),
show.getPlace().getContactInfo(),
show.getPlace().getAddress(),
show.getPlace().getPlaceUrl()
Copy link
Member

Choose a reason for hiding this comment

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

. 에 . 찍으면서 호출하는 패턴 대신 별도의 getter 를 구현하는게 좋다고 생각을 했었는데... 이건 별도로 구현할 게터가 너무 많아보이네요... 그냥 이대로 써도 괜찮을 것 같아요 ㅎㅎ

Copy link
Member

Choose a reason for hiding this comment

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

별도의 sql �문이 있어야 테스트가 가능한 상황일까요?? (사용해도 상관은 없는데 궁금해서 물어봐용 ㅎㅎ)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

이거는 controller test 에서 미리 세팅된 데이터가 필요해서 넣었습니다!

Copy link

🦞 Test Coverage Report

Overall Project NaN% NaN% 🟢

There is no coverage information present for the Files changed

Copy link

🦞 Test Coverage Report

Overall Project NaN% NaN% 🟢

There is no coverage information present for the Files changed

Copy link

🦞 Test Coverage Report

Overall Project NaN% NaN% 🟢

There is no coverage information present for the Files changed

@ssssujini99
Copy link
Contributor Author

코드 인덴트까지 모두 마쳤습니다! 마지막 검토 부탁드려용

Copy link
Member

@EunChanNam EunChanNam left a comment

Choose a reason for hiding this comment

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

고생하셨어요~ 꼼꼼하게 수정 잘 해주신거같아요 👍

@EunChanNam EunChanNam merged commit a6fe876 into dev Dec 24, 2023
2 checks passed
@ssssujini99 ssssujini99 deleted the feat/#22/show-details-api branch January 2, 2024 04:46
EunChanNam pushed a commit that referenced this pull request Jan 15, 2024
* [test]: 공연 정보 조회 API controller test 추가

* [feat]: 공연 정보 조회 API 추가

* [chore]: core모듈에 jackson 라이브러리 추가

* [test]: 공연 정보 조회 Application test 추가

* [feat]: 공연 정보 조회 Application, 응답 DTO 추가

* [feat]: NotFoundException 공통 예외 추가

* [feat]: ShowErrorCode - Show 도메인 에러 코드 추가

* [refactor]: Show 모든 도메인에 AllArgsConstructor 추가

* [test]: ShowRepositoryAdaptorTest 추가

* [feat]: ShowRepository, ShowRepositoryAdaptor 추가

* [feat]: PlaceRepository, PlaceRepositoryAdaptor 추가

* [feat]: ApiExceptionHandler에 NotFoundException 추가

* [docs]: show_dummy.sql 더미데이터 파일 추가

* [refactor]: DataJpaTestSupport 옵션 설정 추가

* [fix]: NotFoundException, ExceptionHandler 수정

* [fix]: conflict 해결

* [refactor]: Optional orElseThrow로 처리

* [refactor]: 에러 메시지 검증 추가

* [refactor]: @AllArgsConstructor 대신 생성자로 리팩토링
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✏️ Feat 기능 개발
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feat] : 사용자는 한 공연에 대한 세부 정보를 조회할 수 있다
2 participants