diff --git a/src/main/java/clap/server/adapter/inbound/web/dto/admin/response/MemberDetailsResponse.java b/src/main/java/clap/server/adapter/inbound/web/dto/admin/response/MemberDetailsResponse.java index d6c1cda3..77cb3384 100644 --- a/src/main/java/clap/server/adapter/inbound/web/dto/admin/response/MemberDetailsResponse.java +++ b/src/main/java/clap/server/adapter/inbound/web/dto/admin/response/MemberDetailsResponse.java @@ -9,7 +9,7 @@ public record MemberDetailsResponse( @Schema(description = "회원 이름", example = "서주원") String name, @Schema(description = "회원 아이디", example = "siena.it") - String nicknanme, + String nickname, @Schema(description = "회원 이메일", example = "siena.it@gmail.com") String email, @Schema(description = "승인 권한 여부") diff --git a/src/main/java/clap/server/adapter/inbound/web/dto/member/response/MemberDetailInfoResponse.java b/src/main/java/clap/server/adapter/inbound/web/dto/member/response/MemberDetailInfoResponse.java index 3b939ded..cc7d2de2 100644 --- a/src/main/java/clap/server/adapter/inbound/web/dto/member/response/MemberDetailInfoResponse.java +++ b/src/main/java/clap/server/adapter/inbound/web/dto/member/response/MemberDetailInfoResponse.java @@ -8,7 +8,7 @@ public record MemberDetailInfoResponse( @Schema(description = "회원 이름", example = "서주원") String name, @Schema(description = "회원 아이디", example = "siena.it") - String nicknanme, + String nickname, @Schema(description = "회원 이메일", example = "siena.it@gmail.com") String email, @Schema(description = "승인 권한 여부") diff --git a/src/main/java/clap/server/adapter/inbound/web/member/MemberInfoController.java b/src/main/java/clap/server/adapter/inbound/web/member/MemberInfoController.java index dbb02e8b..b82a0863 100644 --- a/src/main/java/clap/server/adapter/inbound/web/member/MemberInfoController.java +++ b/src/main/java/clap/server/adapter/inbound/web/member/MemberInfoController.java @@ -8,6 +8,9 @@ import clap.server.application.port.inbound.member.MemberDetailInfoUsecase; import clap.server.application.port.inbound.member.MemberProfileUsecase; import clap.server.common.annotation.architecture.WebAdapter; +import clap.server.common.utils.FileTypeValidator; +import clap.server.exception.ApplicationException; +import clap.server.exception.code.FileErrorcode; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -49,6 +52,9 @@ public void updateMemberDetailInfo( @RequestPart(name = "memberInfo") UpdateMemberInfoRequest request, @RequestPart(name = "profileImage", required = false) MultipartFile profileImage, @AuthenticationPrincipal SecurityUserDetails userInfo) throws IOException { + if (profileImage !=null && !FileTypeValidator.validImageFile(profileImage.getInputStream())) { + throw new ApplicationException(FileErrorcode.UNSUPPORTED_FILE_TYPE); + } updateMemberInfoUsecase.updateMemberInfo(userInfo.getUserId(), request, profileImage); } } diff --git a/src/main/java/clap/server/application/mapper/MemberResponseMapper.java b/src/main/java/clap/server/application/mapper/MemberResponseMapper.java index 67e9ceba..d0491b9f 100644 --- a/src/main/java/clap/server/application/mapper/MemberResponseMapper.java +++ b/src/main/java/clap/server/application/mapper/MemberResponseMapper.java @@ -27,7 +27,7 @@ public static MemberDetailInfoResponse toMemberDetailInfoResponse(Member member) member.getImageUrl(), member.getMemberInfo().getName(), member.getMemberInfo().getNickname(), - member.getImageUrl(), + member.getMemberInfo().getEmail(), member.isReviewer(), member.getMemberInfo().getRole(), member.getMemberInfo().getDepartment().getName(), diff --git a/src/main/java/clap/server/application/service/admin/SendInvitationService.java b/src/main/java/clap/server/application/service/admin/SendInvitationService.java index 4002ee34..b6b6bd34 100644 --- a/src/main/java/clap/server/application/service/admin/SendInvitationService.java +++ b/src/main/java/clap/server/application/service/admin/SendInvitationService.java @@ -39,7 +39,7 @@ public void sendInvitation(SendInvitationRequest request) { commandMemberPort.save(member); // 회원 상태를 APPROVAL_REQUEST으로 변경 - member.changeStatusToAPPROVAL_REQUEST(); + member.changeToApproveRequested(); sendEmailPort.sendInvitationEmail( member.getMemberInfo().getEmail(), diff --git a/src/main/java/clap/server/application/service/member/UpdateMemberInfoService.java b/src/main/java/clap/server/application/service/member/UpdateMemberInfoService.java index 4a1a07ec..50446cdf 100644 --- a/src/main/java/clap/server/application/service/member/UpdateMemberInfoService.java +++ b/src/main/java/clap/server/application/service/member/UpdateMemberInfoService.java @@ -6,11 +6,8 @@ import clap.server.application.port.outbound.member.CommandMemberPort; import clap.server.application.port.outbound.s3.S3UploadPort; import clap.server.common.annotation.architecture.ApplicationService; -import clap.server.domain.policy.attachment.FilePathPolicy; -import clap.server.common.utils.FileTypeValidator; import clap.server.domain.model.member.Member; -import clap.server.exception.ApplicationException; -import clap.server.exception.code.FileErrorcode; +import clap.server.domain.policy.attachment.FilePathPolicy; import lombok.RequiredArgsConstructor; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -27,11 +24,8 @@ class UpdateMemberInfoService implements UpdateMemberInfoUsecase { @Override public void updateMemberInfo(Long memberId, UpdateMemberInfoRequest request, MultipartFile profileImage) throws IOException { - if (!FileTypeValidator.validImageFile(profileImage.getInputStream())) { - throw new ApplicationException(FileErrorcode.UNSUPPORTED_FILE_TYPE); - } Member member = memberService.findActiveMember(memberId); - String profileImageUrl = s3UploadPort.uploadSingleFile(FilePathPolicy.MEMBER_IMAGE, profileImage); + String profileImageUrl = profileImage != null ? s3UploadPort.uploadSingleFile(FilePathPolicy.MEMBER_IMAGE, profileImage) : null; member.updateMemberInfo(request.name(), request.agitNotification(), request.emailNotification(), request.kakaoWorkNotification(), profileImageUrl); commandMemberPort.save(member); diff --git a/src/main/java/clap/server/domain/model/member/Member.java b/src/main/java/clap/server/domain/model/member/Member.java index f8aead10..27b06c6d 100644 --- a/src/main/java/clap/server/domain/model/member/Member.java +++ b/src/main/java/clap/server/domain/model/member/Member.java @@ -75,9 +75,10 @@ public boolean isReviewer() { return this.memberInfo != null && this.memberInfo.isReviewer(); } - public void changeStatusToAPPROVAL_REQUEST() { + public void changeToApproveRequested() { this.status = MemberStatus.APPROVAL_REQUEST; } + public void updateMemberInfo(String name, Boolean agitNotificationEnabled, Boolean emailNotificationEnabled, Boolean kakaoWorkNotificationEnabled, String imageUrl) { this.memberInfo.updateName(name); this.agitNotificationEnabled = agitNotificationEnabled;