Skip to content

Commit

Permalink
feat: 회원 전화번호 수정 기능 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
gikhoon committed Jul 8, 2024
1 parent 8b6a2d7 commit 4c8cc69
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import org.cotato.csquiz.api.admin.dto.MemberInfoResponse;
import org.cotato.csquiz.api.member.dto.MemberMyPageInfoResponse;
import org.cotato.csquiz.api.member.dto.UpdatePasswordRequest;
import org.cotato.csquiz.api.member.dto.UpdatePhoneNumberRequest;
import org.cotato.csquiz.common.config.jwt.JwtTokenProvider;
import org.cotato.csquiz.domain.auth.service.MemberService;
import org.springframework.http.ResponseEntity;
Expand Down Expand Up @@ -42,6 +43,15 @@ public ResponseEntity<Void> updatePassword(@RequestHeader("Authorization") Strin
return ResponseEntity.noContent().build();
}

@PatchMapping("/phone-number")
public ResponseEntity<Void> updatePhoneNumber(
@RequestHeader("Authorization") String authorizationHeader,
@RequestBody @Valid UpdatePhoneNumberRequest request) {
String accessToken = jwtTokenProvider.getBearer(authorizationHeader);
memberService.updatePhoneNumber(accessToken,request.phoneNumber());
return ResponseEntity.noContent().build();
}

@GetMapping("/{memberId}/mypage")
public ResponseEntity<MemberMyPageInfoResponse> findMyPageInfo(@PathVariable("memberId") Long memberId) {
return ResponseEntity.ok().body(memberService.findMyPageInfo(memberId));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.cotato.csquiz.api.member.dto;

import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;

public record UpdatePhoneNumberRequest(
@NotNull(message = "전화번호를 입력해주세요.")
@Size(min = 11, max = 11, message = "'-'없이 11자리의 전화번호를 입력해주세요.")
String phoneNumber
) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,10 @@ public void updateGeneration(Integer passedGenerationNumber) {
this.passedGenerationNumber = passedGenerationNumber;
}

public void updatePhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}

public void updatePosition(MemberPosition position) {
this.position = position;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import org.cotato.csquiz.api.admin.dto.MemberInfoResponse;
import org.cotato.csquiz.api.member.dto.MemberInfo;
import org.cotato.csquiz.api.member.dto.MemberMyPageInfoResponse;
import org.cotato.csquiz.api.member.dto.UpdatePhoneNumberRequest;
import org.cotato.csquiz.common.config.jwt.JwtTokenProvider;
import org.cotato.csquiz.domain.auth.entity.Member;
import org.cotato.csquiz.common.error.exception.AppException;
Expand Down Expand Up @@ -60,6 +61,16 @@ private void validateIsSameBefore(String originPassword, String newPassword) {
}
}

@Transactional
public void updatePhoneNumber(String accessToken, String phoneNumber) {
Long memberId = jwtTokenProvider.getMemberId(accessToken);
Member findMember = memberRepository.findById(memberId)
.orElseThrow(() -> new EntityNotFoundException("해당 회원을 찾을 수 없습니다."));

String encryptedPhoneNumber = encryptService.encryptPhoneNumber(phoneNumber);
findMember.updatePhoneNumber(encryptedPhoneNumber);
}

public MemberMyPageInfoResponse findMyPageInfo(Long memberId) {
Member findMember = memberRepository.findById(memberId)
.orElseThrow(() -> new EntityNotFoundException("해당 회원을 찾을 수 없습니다."));
Expand Down

0 comments on commit 4c8cc69

Please sign in to comment.