-
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
Feat: MemberId위한 MethodArgumentResolver 구현 #13
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- MemberId Annotation 구현 - MemberIdArgumentResolver class 구현 - WebConfig class 구현 후 MemberIdArgumentResolver 세팅
2iedo
approved these changes
Sep 25, 2024
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.
jwt토큰에 대한 생각을 하다 헷갈린 것 같네요...! 제가 보기엔 문제없어 보입니다!
zzoe2346
added a commit
that referenced
this pull request
Sep 27, 2024
* Refactor: class DTO를 record DTO로 수정 (#11) * Refactor: CallbackResponse class를 record로 변경 * Refactor: GuardController관련 DTO들 record로 변경 * Refactor: GuardGuidelineController관련 DTO들 record로 변경 * Refactor: HelloCallController관련 DTO들 record로 변경 * Refactor: PointController관련 DTO들 record로 변경 * Refactor: SinittoController관련 DTO들 record로 변경 * Refactor: MemberController관련 DTO들 record로 변경 * Refactor: ReviewController관련 DTO들 record로 변경 * Refactor: AuthController관련 DTO들 record로 변경 * Refactor: SinittoGuideline 관련 클래스 제거 - Sinitto가이드라인은 프론트에서 구현하기때문에 Sinitto가이드라인 관련 클래스는 불필요함 * Refactor: record 스타일 통일 * Refactor: package 재구성 (#12) * Feat: MemberId위한 MethodArgumentResolver 구현 (#13) - MemberId Annotation 구현 - MemberIdArgumentResolver class 구현 - WebConfig class 구현 후 MemberIdArgumentResolver 세팅 * Feat: 초기 Entity 구현 (#15) * Feat: 초기 Entity 구현 - @EnableJpaAuditing 하여 @EntityListeners(AuditingEntityListener.class) 활성화 - 속성 구성 - 연관관계 구성 * Feat: 엔티티 속성에 @NotNull 적용 * Refactor: Senior의 GuardGuideLine에 대한 `@OneToMany` 제거 - GuardGuideLine에서 Senior를 `ManyToOne`으로 매핑해 놓았다. * Feat: `@OnDelete`로 CASCADE 적용하여 연관 엔티티 삭제 시 일관성 유지
cheol-95
pushed a commit
that referenced
this pull request
Oct 8, 2024
* 3주차 산출물 * Chore: 스프링 초기 설정 - .gitignore 파일 추가 - build.gradle 파일 추가후 dependencies 설정 - 자바21 * Feat: 팀원 모두 참여한 초기 Swagger (#3) * Feat: 팀원 모두 참여한 초기 Swagger - controller, dto 코드 구현 - Swagger setting - dto의 getter는 스웨거를 위한 것 * Refactor: HelloCallController '요청' 관련 리팩토링(RequestBody->PathVariable) - RequestBody로 helloCallId 받던걸 PathVariable로 받도록 변경 - 쓸모 없어진 클래스 제거 * Refactor: CallbackController '요청' 관련 리팩토링(RequestBody->PathVariable) - RequestBody로 callbackId 받던걸 PathVariable로 받도록 변경 - 쓸모 없어진 클래스 제거 * Refactor: PointRequest 로 통일 - PointWithdrawRequest -> PointRequest - 둘 다 `int price;`만 가지고 있음 - 쓸모 없어진 클래스 제거 * 4주차 최종 산출물(Weekly-4->Develop) (#18) * Refactor: class DTO를 record DTO로 수정 (#11) * Refactor: CallbackResponse class를 record로 변경 * Refactor: GuardController관련 DTO들 record로 변경 * Refactor: GuardGuidelineController관련 DTO들 record로 변경 * Refactor: HelloCallController관련 DTO들 record로 변경 * Refactor: PointController관련 DTO들 record로 변경 * Refactor: SinittoController관련 DTO들 record로 변경 * Refactor: MemberController관련 DTO들 record로 변경 * Refactor: ReviewController관련 DTO들 record로 변경 * Refactor: AuthController관련 DTO들 record로 변경 * Refactor: SinittoGuideline 관련 클래스 제거 - Sinitto가이드라인은 프론트에서 구현하기때문에 Sinitto가이드라인 관련 클래스는 불필요함 * Refactor: record 스타일 통일 * Refactor: package 재구성 (#12) * Feat: MemberId위한 MethodArgumentResolver 구현 (#13) - MemberId Annotation 구현 - MemberIdArgumentResolver class 구현 - WebConfig class 구현 후 MemberIdArgumentResolver 세팅 * Feat: 초기 Entity 구현 (#15) * Feat: 초기 Entity 구현 - @EnableJpaAuditing 하여 @EntityListeners(AuditingEntityListener.class) 활성화 - 속성 구성 - 연관관계 구성 * Feat: 엔티티 속성에 @NotNull 적용 * Refactor: Senior의 GuardGuideLine에 대한 `@OneToMany` 제거 - GuardGuideLine에서 Senior를 `ManyToOne`으로 매핑해 놓았다. * Feat: `@OnDelete`로 CASCADE 적용하여 연관 엔티티 삭제 시 일관성 유지 * Feat: 4주차 최종 산출물 * Chore: 잘못된 머지 결과 수정 * Chore: 잘못된 머지 결과 수정(중복 SwaggerConfig 제거) * Chore: 잘못된 머지 결과 수정(중복 SwaggerConfig 제거) * Feat: Resolver JWT 데이터 추출 로직 추가, 카카오 로그인 및 JWT 로직 구현 (#29) * feat: UnauthorizedException 정의 및 RestControllerAdvice 작성을 위한 MemberControllerAdvice 생성, Unauthorized에 대한 global exception 구현 * feat: JWT 생성 및 refresh 로직 구현, Resolver에서 MemberId 반환 로직 구현 * refactor: 코드 리팩토링 * feat: 카카오 요청 api 및 카카오 토큰 저장 로직 구현, 카카오 토큰 만료시 자동 리프레쉬 로직 구현 * fix: 이미 카카오토큰이 저장된 경우, 업데이트만 수행하도록 수정 * fix: 파일 이름 오타 수정 * feat: 카카오 로그인을 경유하는 서버 회원가입 및 로그인 비즈니스 로직 구현, Bean 순환 참조 문제 해결 위한 읜존성 제거 * refactor: 인증 관련 로직 member -> auth 로 위치 변경 * feat: 카카오 로그인 및 멤버 회원가입 controller 구현, 임시 CORS 오류 해결 * test: member와 auth 도메인에 대한 단위테스트, repo테스트 추가 및 기본생성자 접근 권한을 protected로 변경 * refactor: 코드 자동 리팩토링 * fix: 멤버 여부 확인 find -> exist로 변환 후 테스트코드 추가, advice에 basePackage 적용 * fix: jwt.secret 값을 dev 속성으로 위치 변경 및 KakaoProperties frontendUri 필드 삭제 * Feat: 보호자용 마이페이지와 관련된 로직 구현 (#31) * feat : SeniorRepository 인터페이스 추가 * feat : GuardService 클래스 추가 * feat : SeniorNotFoundException 클래스 추가 * feat : GuardControllerAdvice 클래스 추가 * feat : GuardController에 있는 api 구현 * feat : updateMember 메소드 추가 * feat : mapToResponse 메소드, updateSenior 메소드 추가 및 getter 추가 * feat : SeniorTest 클래스 추가 Senior 엔티티에 대한 테스트 코드 * feat : SeniorRepositoryTest 클래스 추가 SeniorRepository에 대한 테스트 코드 * refactor : basePackage 추가 * feat : findByIsSinitto 메소드 추가 모든 보호자 불러오는데 사용 * refactor : Transactional 어노테이션 추가 및 업데이트 시 save 메소드 제거 * refactor : responseEntity 리턴하도록 변경 * refactor : 주석 제거 * Feat: 콜백서비스 기능 구현 (#32) * Feat: 콜백 리스트(페이징) 보기 기능 구현 - 필요한 getter 구현 - CallbackResponse에 callbackId, seniorId 추가 - 당장 isSiniito() 가 필요하여 Member 코드 수정. 추후 충돌 가능성 존재 - Senior 도 필요한 getter 가 있어 수정. 추후 충돌 가능성 존재 - 예외 처리 할 Advice 구현 - 필요한 레포지토리 구현 - 콜백 리스트 보기 기능 비즈니스 로직(서비스층) 구현 - 테스트 구현 * Build: Twilio SDK 의존성 추가 * Feat: 가독성 향상을 위해 Callback의 String status -> Enum 타입으로 변경 - 하드코딩 방지 - 가독성 향상 - 유지 관리 용이 * Chore: 필요없어진 기능(콜백 상세보기) 제거 * Feat: 콜백 수락, 취소, 완료 기능 구현 - 콜백에 할당된 멤버를 식별위해 assignedMemberId 속성를 Callback에 추가 - enum CallbackStatus 내부 속성 이름 변경 - 공통 ForbiddenException 클래스 구현. forbidden응답을 할 예외에 상속용 * Feat: Callback 생성자에 assignedMemberId 추가 * Feat: Member, Senior 에 생성자 추가 * Feat: SeniorRepository 생성 - 테스트할 때 save()가 필요해 생성 - 시니어 추가 기능 만들때 어차피 추가 되는것으로 판단 * Test: CallbackServce, Callback 테스트 구현 - 서비스층은 mockito 를 활용한 테스트 - Callback Entity 는 `@DataJpaTest`활용한 테스트 * Feat: Twilio 관련 도움주는 역할하는 TwilioHelper.java 구현 * Feat: Callback 엔티티에 예외처리 더 꼼꼼히 구현 - 외부 CallbackStatus Enum을 내부 Status Enum으로 변경 - Callback 에 changeStatusToWaiting 구현 - 테스트 더 추가 * Feat: Twilio 활용한 콜백 등록(추가) 기능 구현 - 테스트 구현 * Test: TwilioHelperTest에 DisplayName 추가 * Feat: Callback Entity 의 메서드에 더 촘촘한 예외 처리 - 더 자세한 테스트 추가 * Test: CallbackServiceTest에 Display 설정 - 불필요하다 판단한 테스트 제거 * Refactor: 메서드 이름 형식 통일 * Feat: 더 풍부한 예외 메시지 추가 * Fix: 잘못 상속한 부분 수정 * Fix: 본인이 만든 SeniorRepository 제거 - 서로 다른 패키지에 만들어서 SeniorRepository가 2개가되어 애플리케이션이 실행이 안되었음 * Feat: 더 디테일한 에러 응답을 위해 `ResponseEntity` 적용 * Refactor: Callback 초기화시 assignedMemberId `null`초기화로 변경 * Feat: 조회 전용 서비스 메서드에 `@Transactional(readOnly = true)` 도입 * Feat: Swagger에서 JWT 활용 기능 활성화 (#35) * Feat: Swagger 설정에 SecuritySchme 추가 * Feat: Swagger 문서에 memberId 숨기기위해 `@MemberId`에 `@Parameter(hidden=true)` 붙임 * Feat: Member, Auth 도메인 에서는 JWT 제외 시키기 위한 내용 추가 - 전역으로 `SecurityRequirement().addList("bearerAuth")`를 설정해놓음. 이를 피하기 위한 `security = @securityrequirement(name = "JWT제외")` * Feat: 시니또용 마이페이지와 관련된 로직 및 테스트 코드 구현 (#36) * feat: 시니또용 마이페이지와 관련된 로직 및 테스트 코드 구현 * refactor: [미구현] 표시 삭제 * feat: 시니또 계좌정보 관련 api 추가 * refactor: 코드 컨벤션에 맞게 수정 * fix: updateMember 메서드 오류 수정 * feat: 계좌정보 dto 분리 --------- Co-authored-by: JIHO LEE <161289673+GitJIHO@users.noreply.github.com> Co-authored-by: 2iedo <162278702+2iedo@users.noreply.github.com> Co-authored-by: eunsoni <135586807+eunsoni@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
#️⃣ 연관된 이슈
#8
📝 작업 내용
MemberId Annotation 구현
MemberIdArgumentResolver class 구현
WebConfig class 구현 후 MemberIdArgumentResolver 세팅
참고
@MemberId Long memberId
을 하면 Swagger 문서에 memberId이 반영됩니다. 이를 방지하기 위해@Parameter(hidden = true) @MemberId Long memberId
이걸 쓰면 Swagger 문서에 반영이 안됩니다.스크린샷 (선택)
💬 리뷰 요구사항(선택)
⏰ 현재 버그
✏ Git Close
close #8