Skip to content

Commit

Permalink
feat: 회원 전화번호 수정 기능 구현
Browse files Browse the repository at this point in the history
feat: 회원 전화번호 수정 기능 구현
  • Loading branch information
gikhoon committed Jul 8, 2024
1 parent 8b6a2d7 commit 50af283
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
package org.cotato.csquiz.api.member.controller;

import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
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.context.annotation.Description;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
Expand Down Expand Up @@ -42,6 +45,16 @@ public ResponseEntity<Void> updatePassword(@RequestHeader("Authorization") Strin
return ResponseEntity.noContent().build();
}

@Operation(summary = "멤버 전화번호 수정", description = "멤버 전화번호 수정하기")
@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 50af283

Please sign in to comment.