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

#117 [fix] 모델 회원가입 로직 변경 #121

Merged
merged 15 commits into from
Jan 16, 2024
Merged

#117 [fix] 모델 회원가입 로직 변경 #121

merged 15 commits into from
Jan 16, 2024

Conversation

hellozo0
Copy link
Member

@hellozo0 hellozo0 commented Jan 14, 2024

관련 이슈번호

해결하는 데 얼마나 걸렸나요? (예상 작업 시간 / 실제 작업 시간)

  • 2h/2h + (JPQL 해결 방법 적용 1h)

해결하려는 문제가 무엇인가요?

  • 기존 로그인시 생성된 user 객체를 이어받아서 model 객체 생성



기존의 문제 상황

원하는 상황

  • 기존 로그인시 생성된 user 객체를 이어받아서 model 객체 생성
  • user 한번더 생성X, Model 데이터만 생성

현재상황, 문제 상황

  • 기존의 user 외 적으로 Model 객체 생성시에 user 객체도 한번더 생성이 됩니다!
  • 따라서 기존의 null 값들이 난무한 user 객체를 삭제하고싶은데 현재 클라이언트 선생님들이 혹시 제가 모델 생성시에 주는 accessToken으로 header를 깔아끼운다면 문제가 되지 않습니다. 근데 제가 이해하기로는 <기존의 JWT 토큰 유지> < 기존 로그인시 생성된 user 객체를 이어받아서 model 객체 생성 > && <user 데이터 한번더 생성X, Model 데이터만 생성> 인것같은데 맞을까요?




기존의 문제 상황을 해결함 어떻게?

해결 방법

JPQL 쿼리를 사용해서 Model 객체만 insert 하는 방법으로 구현 완료~!

@hellozo0 hellozo0 added the fix label Jan 14, 2024
@hellozo0 hellozo0 requested review from KWY0218 and pkl0912 January 14, 2024 13:48
@hellozo0 hellozo0 self-assigned this Jan 14, 2024
Copy link
Member

@KWY0218 KWY0218 left a comment

Choose a reason for hiding this comment

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

작업하시느라 고생하셨습니다.
코맨트 확인해주세요!

Comment on lines 247 to 259
User user = userRepository.findById(userId).orElseThrow(() -> new NotFoundException(ErrorCode.USER_NOT_FOUND_EXCEPTION));

Model model = Model.builder()
.kakaoId(user.getKakaoId())
.name(request.name())
.year(request.year())
.gender(request.gender())
.phoneNumber(request.phoneNumber())
.isMarketingAgree(request.isMarketingAgree())
.profileImgUrl(s3Service.getDefaultProfileImageUrl())
.kakaoId(kakaoId)
.role(Role.MODEL)
.build();
.year(request.year()).build();

modelJpaRepository.save(model);
Copy link
Member

Choose a reason for hiding this comment

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

p2
현재 로직은 새로운 model을 하나 더 만드는 로직입니다.

find by id를 통해 기존 user를 불러온 뒤, 해당 setter를 통해 해당 user의 정보를 update 한 뒤,
Model 객체를 builder를 통해 만들어서 save 하도록 로직을 수정해야 할 것 같습니다.

Copy link
Member Author

@hellozo0 hellozo0 Jan 14, 2024

Choose a reason for hiding this comment

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

@KWY0218

Builder를 통해 Model 객체를 만들어서 저장을 하게 되면 기존에 만들어진 userId에 대한 정보를 이어받아서 Model만 생성되는 것이 아니라 새로운 User 정보도 생성된다는 문제가 있습니다! 기존의 User가 1번 이였다면, 2번 유저를 가르키고 있는 Model이 만들어 지는데 혹시 이러한 방법을 하는게 맞을까요..?

-- 제 코드가 문제가 있을 수도 있어서 방금 수정 코드 다시 올려두었습니다!

User 2 번이 생성안되고 Model 객체가 User 1을 참조할 수 있는 방법 좀 더 생각해서 PR 올릴께욤!

Copy link
Member

@KWY0218 KWY0218 left a comment

Choose a reason for hiding this comment

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

작업하시느라 고생하셨습니다!
코맨트 확인해주세요!

@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "모델 회원가입 성공"),
@ApiResponse(responseCode = "400", description = "유효하지 않은 카카오 코드를 입력했습니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
@ApiResponse(responseCode = "400", description = "인증오류 입니다.", content = @Content(schema = @Schema(implementation = ErrorResponse.class))),
Copy link
Member

Choose a reason for hiding this comment

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

p2
access token 관련 오류이기 때문에 400이 아닌 401 에러인 것 같습니다..!

@@ -74,21 +79,19 @@ public class DesignerService {


@Transactional
public DesignerMainResponse getDesignerMainInfo(Long userId, int page, int size){
public DesignerMainResponse getDesignerMainInfo(final long userId, final int page, final int size){
Copy link
Member

Choose a reason for hiding this comment

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

p2
아래 User user = new User() 는 사용하지 않는 듯 합니다..!
사용하지 않는 구문은 제거해주세요

Copy link
Member Author

Choose a reason for hiding this comment

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

관련문제는 이슈를 따로 파놨습니다~!

Copy link
Member

@KWY0218 KWY0218 left a comment

Choose a reason for hiding this comment

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

굿 좋습니다 ~ ! 👍

Copy link
Contributor

@pkl0912 pkl0912 left a comment

Choose a reason for hiding this comment

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

수고하셨습니다!!!

@hellozo0 hellozo0 merged commit 1f8bbad into develop Jan 16, 2024
1 check passed
@hellozo0 hellozo0 deleted the fix/#117 branch January 16, 2024 06:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[fix] 모델 회원가입 내부 로직 변경
3 participants