From 85010b677755aacafd08c831a224f55e8c7790f7 Mon Sep 17 00:00:00 2001 From: lee-haeseung Date: Tue, 21 Jan 2025 00:31:42 +0900 Subject: [PATCH] =?UTF-8?q?#318=20Feat:=20=EC=9D=B4=EB=A9=94=EC=9D=BC,=20?= =?UTF-8?q?=EB=B9=84=EB=B2=88,=20=EB=8B=89=EB=84=A4=EC=9E=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EA=B0=80=EB=8A=A5=ED=95=98=EA=B2=8C=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/dto/request/MemberRequestDTO.java | 6 ++++-- .../backend/domain/member/entity/Member.java | 15 +++++++++------ .../member/service/MemberCommandService.java | 5 ++++- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/codiary/backend/domain/member/dto/request/MemberRequestDTO.java b/src/main/java/com/codiary/backend/domain/member/dto/request/MemberRequestDTO.java index dc6fc1d0..4142ba70 100644 --- a/src/main/java/com/codiary/backend/domain/member/dto/request/MemberRequestDTO.java +++ b/src/main/java/com/codiary/backend/domain/member/dto/request/MemberRequestDTO.java @@ -6,12 +6,11 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; +import java.time.LocalDate; import lombok.Builder; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.web.multipart.MultipartFile; -import java.time.LocalDate; - public class MemberRequestDTO { // 회원가입 요청 DTO @@ -64,6 +63,9 @@ public record MemberProfileImageRequestDTO(MultipartFile image) { @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) @Builder public record MemberInfoDTO( + String email, + String password, + String nickname, String birth, String introduction, String github, diff --git a/src/main/java/com/codiary/backend/domain/member/entity/Member.java b/src/main/java/com/codiary/backend/domain/member/entity/Member.java index 38edde4e..e4caa8af 100644 --- a/src/main/java/com/codiary/backend/domain/member/entity/Member.java +++ b/src/main/java/com/codiary/backend/domain/member/entity/Member.java @@ -125,12 +125,15 @@ public Member(String email, String password, String nickname, String birth, Stri this.image = new MemberImage(this, ""); } - public void updateInfo(MemberRequestDTO.MemberInfoDTO memberInfo) { - this.birth = memberInfo.birth(); - this.introduction = memberInfo.introduction(); - this.github = memberInfo.github(); - this.linkedin = memberInfo.linkedin(); - this.discord = memberInfo.discord(); + public void updateInfo(MemberRequestDTO.MemberInfoDTO memberInfo, String password) { + this.nickname = memberInfo.nickname() != null ? memberInfo.nickname() : this.nickname; + this.password = password != null ? password : this.password; + this.email = memberInfo.email() != null ? memberInfo.email() : this.email; + this.birth = memberInfo.birth() != null ? memberInfo.birth() : this.birth; + this.introduction = memberInfo.introduction() != null ? memberInfo.introduction() : this.introduction; + this.github = memberInfo.github() != null ? memberInfo.github() : this.github; + this.linkedin = memberInfo.linkedin() != null ? memberInfo.linkedin() : this.linkedin; + this.discord = memberInfo.discord() != null ? memberInfo.discord() : this.discord; } public void setImage(MemberImage image) { diff --git a/src/main/java/com/codiary/backend/domain/member/service/MemberCommandService.java b/src/main/java/com/codiary/backend/domain/member/service/MemberCommandService.java index 499aac6e..259b3df6 100644 --- a/src/main/java/com/codiary/backend/domain/member/service/MemberCommandService.java +++ b/src/main/java/com/codiary/backend/domain/member/service/MemberCommandService.java @@ -24,6 +24,7 @@ import java.util.UUID; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -38,6 +39,7 @@ public class MemberCommandService { private final AmazonS3Manager s3Manager; private final MemberImageRepository memberImageRepository; private final TechStackRepository techStackRepository; + private final PasswordEncoder passwordEncoder; @Transactional public Member getRequester() { @@ -87,7 +89,8 @@ public ApiResponse deleteProfileImage(Long memberId) { @Transactional public Member updateMemberInfo(Long memberId, MemberRequestDTO.MemberInfoDTO request){ Member member = memberRepository.findById(memberId).orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND)); - member.updateInfo(request); + String password = request.password() != null ? passwordEncoder.encode(request.password()) : null; + member.updateInfo(request, password); return memberRepository.save(member); }