Skip to content

Commit 0f2236b

Browse files
committed
Merge remote-tracking branch 'origin/develop' into CLAP-324
# Conflicts: # src/main/java/clap/server/application/service/history/CommandCommentService.java
2 parents 19a2819 + a140d39 commit 0f2236b

File tree

6 files changed

+36
-22
lines changed

6 files changed

+36
-22
lines changed

src/main/java/clap/server/adapter/inbound/web/dto/member/request/UpdateMemberInfoRequest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@
22

33
import io.swagger.v3.oas.annotations.media.Schema;
44
import jakarta.validation.constraints.NotBlank;
5+
import jakarta.validation.constraints.NotNull;
56

67
public record UpdateMemberInfoRequest(
78
@NotBlank @Schema(description = "이름")
89
String name,
10+
@NotNull @Schema(description = "이미지 수정이 있을 시에는 false을, 이미지를 삭제할 때에는 true을 보냅니다.")
11+
Boolean isProfileImageDeleted,
912
@Schema(description = "아지트 알림 수신 여부")
1013
boolean agitNotification,
1114
@Schema(description = "이메일 알림 수신 여부")

src/main/java/clap/server/adapter/outbound/persistense/entity/task/CommentEntity.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
@Getter
1818
@SuperBuilder
1919
@NoArgsConstructor(access = AccessLevel.PROTECTED)
20-
@SQLDelete(sql = "UPDATE comment SET is_deleted = true WHERE comment_id = ?")
2120
@SQLRestriction("is_deleted = false")
2221
public class CommentEntity extends BaseTimeEntity {
2322
@Id

src/main/java/clap/server/adapter/outbound/persistense/repository/history/TaskHistoryRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
@Repository
1111
public interface TaskHistoryRepository extends JpaRepository<TaskHistoryEntity, Long>, TaskHistoryCustomRepository {
12-
@Modifying
12+
@Modifying(clearAutomatically = true, flushAutomatically = true)
1313
@Query("UPDATE TaskHistoryEntity t SET t.isDeleted = true WHERE t.comment.commentId = :commentId")
1414
void updateByComment_CommentId(@Param("commentId") Long commentId);
1515
}

src/main/java/clap/server/application/service/history/CommandCommentService.java

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,28 @@
22

33
import clap.server.adapter.inbound.web.dto.history.request.EditCommentRequest;
44
import clap.server.application.port.inbound.domain.CommentService;
5-
import clap.server.application.port.inbound.domain.MemberService;
65
import clap.server.application.port.inbound.history.DeleteCommentUsecase;
76
import clap.server.application.port.inbound.history.EditCommentUsecase;
7+
import clap.server.application.port.inbound.domain.MemberService;
88
import clap.server.application.port.outbound.task.CommandAttachmentPort;
99
import clap.server.application.port.outbound.task.CommandCommentPort;
1010
import clap.server.application.port.outbound.task.LoadAttachmentPort;
11+
import clap.server.application.port.outbound.task.LoadCommentPort;
1112
import clap.server.application.port.outbound.taskhistory.CommandTaskHistoryPort;
1213
import clap.server.common.annotation.architecture.ApplicationService;
1314
import clap.server.domain.model.member.Member;
1415
import clap.server.domain.model.task.Attachment;
1516
import clap.server.domain.model.task.Comment;
1617
import clap.server.exception.ApplicationException;
18+
import clap.server.exception.DomainException;
1719
import clap.server.exception.code.CommentErrorCode;
20+
import clap.server.exception.code.MemberErrorCode;
1821
import lombok.RequiredArgsConstructor;
1922
import lombok.extern.slf4j.Slf4j;
2023
import org.springframework.transaction.annotation.Transactional;
2124

25+
import java.util.Objects;
26+
2227
@ApplicationService
2328
@RequiredArgsConstructor
2429
@Slf4j
@@ -34,32 +39,31 @@ public class CommandCommentService implements EditCommentUsecase, DeleteCommentU
3439

3540
@Transactional
3641
@Override
37-
public void editComment(Long memberId, Long commentId, EditCommentRequest request) {
38-
Member member = memberService.findActiveMember(memberId);
42+
public void editComment(Long userId, Long commentId, EditCommentRequest request) {
43+
Member member = memberService.findActiveMember(userId);
3944
Comment comment = commentService.findById(commentId);
4045

41-
if (comment.getMember().getMemberId().equals(member.getMemberId())) {
46+
if (Member.checkCommenter(comment.getTask(), member)) {
4247
comment.updateComment(request.content());
4348
commandCommentPort.saveComment(comment);
44-
}
45-
else throw new ApplicationException(CommentErrorCode.NOT_A_COMMENT_WRITER);
46-
49+
};
4750
}
4851

4952
@Transactional
5053
@Override
51-
public void deleteComment(Long memberId, Long commentId) {
52-
Member member = memberService.findActiveMember(memberId);
54+
public void deleteComment(Long userId, Long commentId) {
55+
Member member = memberService.findActiveMember(userId);
5356
Comment comment = commentService.findById(commentId);
5457

55-
if (comment.getMember().getMemberId().equals(member.getMemberId())) {
58+
59+
if (Objects.equals(comment.getMember().getMemberId(), member.getMemberId())) {
5660
if (loadAttachmentPort.exitsByCommentId(commentId)) {
5761
deleteAttachments(commentId);
5862
}
59-
commandCommentPort.deleteComment(comment);
60-
commandTaskHistoryPort.deleteTaskHistoryByCommentId(commentId);
63+
commandCommentPort.deleteCommentWithTaskHistory(commentId);
64+
}else{
65+
throw new DomainException(MemberErrorCode.NOT_A_COMMENTER);
6166
}
62-
else throw new ApplicationException(CommentErrorCode.NOT_A_COMMENT_WRITER);
6367
}
6468

6569
private void deleteAttachments(Long commentId) {

src/main/java/clap/server/application/service/member/UpdateMemberInfoService.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,17 @@ class UpdateMemberInfoService implements UpdateMemberInfoUsecase {
2323
private final CommandMemberPort commandMemberPort;
2424

2525
@Override
26-
public void updateMemberInfo(Long memberId, UpdateMemberInfoRequest request, MultipartFile profileImage) throws IOException {
26+
public void updateMemberInfo(Long memberId, UpdateMemberInfoRequest request, MultipartFile profileImage) {
2727
Member member = memberService.findActiveMember(memberId);
28-
String profileImageUrl = profileImage != null ? s3UploadPort.uploadSingleFile(FilePathPolicyConstants.MEMBER_IMAGE, profileImage) : null;
28+
if(request.isProfileImageDeleted()){
29+
member.setImageUrl(null);
30+
}
31+
else {
32+
String profileImageUrl = profileImage != null ? s3UploadPort.uploadSingleFile(FilePathPolicyConstants.MEMBER_IMAGE, profileImage) : member.getImageUrl();
33+
member.setImageUrl(profileImageUrl);
34+
}
2935
member.updateMemberInfo(request.name(), request.agitNotification(), request.emailNotification(),
30-
request.kakaoWorkNotification(), profileImageUrl);
36+
request.kakaoWorkNotification());
3137
commandMemberPort.save(member);
3238
}
3339
}

src/main/java/clap/server/domain/model/member/Member.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,17 @@ public void changeToApproveRequested() {
7878
this.status = MemberStatus.APPROVAL_REQUEST;
7979
}
8080

81-
public void updateMemberInfo(String name, Boolean agitNotificationEnabled, Boolean emailNotificationEnabled, Boolean kakaoWorkNotificationEnabled, String imageUrl) {
81+
public void updateMemberInfo(String name, Boolean agitNotificationEnabled, Boolean emailNotificationEnabled, Boolean kakaoWorkNotificationEnabled) {
8282
this.memberInfo.updateName(name);
8383
this.agitNotificationEnabled = agitNotificationEnabled;
8484
this.emailNotificationEnabled = emailNotificationEnabled;
8585
this.kakaoworkNotificationEnabled = kakaoWorkNotificationEnabled;
86-
if (imageUrl != null) {
87-
this.imageUrl = imageUrl;
88-
}
8986
}
87+
88+
public void setImageUrl(String imageUrl) {
89+
this.imageUrl = imageUrl;
90+
}
91+
9092
public void setStatusDeleted() {
9193
this.status = MemberStatus.DELETED;
9294
}

0 commit comments

Comments
 (0)