Skip to content

Commit

Permalink
Merge pull request #205 from OutDecision/issue/196
Browse files Browse the repository at this point in the history
♻️ [REFACTOR]: 마이페이지 비번 수정
  • Loading branch information
sye1101 authored May 29, 2024
2 parents b084735 + 56d6583 commit 53bdff3
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,10 @@ public ApiResponse<Object> updateMemberInfo(@RequestBody @Valid UpdateMemberDTO
else return ApiResponse.onFailure("400", "개인정보 수정에 실패하였습니다.", null);
}

@PatchMapping("/{memberId}/edit/password")
@PatchMapping("/edit/password")
@Operation(summary = "마이페이지 비밀번호 변경", description = "비밀번호를 변경합니다.")
public ApiResponse<Object> updatePassword(@PathVariable("memberId") Long memberId, @RequestBody @Valid UpdatePasswordDTO request) {
boolean success = passwordService.updatePassword(memberId, request);
public ApiResponse<Object> updatePassword(@RequestBody @Valid UpdatePasswordDTO request) {
boolean success = passwordService.updatePassword(request);
if (success) return ApiResponse.onSuccess("비밀번호가 성공적으로 변경되었습니다.");
else return ApiResponse.onFailure("400", "비밀번호 변경에 실패하였습니다.", null);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@


public interface PasswordService {
boolean updatePassword(Long memberId, UpdatePasswordDTO request);
boolean updatePassword(UpdatePasswordDTO request);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,32 @@
import KGUcapstone.OutDecision.domain.user.domain.Member;
import KGUcapstone.OutDecision.domain.user.dto.UpdateRequestDTO.UpdatePasswordDTO;
import KGUcapstone.OutDecision.domain.user.repository.MemberRepository;
import KGUcapstone.OutDecision.domain.user.service.FindMemberService;
import KGUcapstone.OutDecision.global.error.exception.handler.MemberHandler;
import KGUcapstone.OutDecision.global.error.status.ErrorStatus;
import lombok.RequiredArgsConstructor;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Optional;


@Service
@RequiredArgsConstructor
@Transactional
public class PasswordServiceImpl implements PasswordService{
private final MemberRepository memberRepository;
private final FindMemberService findMemberService;
private final PasswordEncoder passwordEncoder;

@Override
public boolean updatePassword(Long memberId, UpdatePasswordDTO request) {
Member member = memberRepository.findById(memberId).get();
public boolean updatePassword(UpdatePasswordDTO request) {
Optional<Member> memberOptional = findMemberService.findLoginMember();
Member member;
// 로그인 체크
if(memberOptional.isPresent()) member = memberOptional.get();
else throw new MemberHandler(ErrorStatus.MEMBER_NOT_FOUND);

// 현재 비밀번호와 불일치
if(!passwordEncoder.matches(request.getCurrentPassword(), member.getPassword())) return false;
Expand Down

0 comments on commit 53bdff3

Please sign in to comment.