Skip to content

Commit cb2d8e3

Browse files
committed
CLAP-453 Refactor: 댓글 history와 그 외의 history domain 생성 메서드 분리
#592
1 parent 723a764 commit cb2d8e3

File tree

10 files changed

+42
-39
lines changed

10 files changed

+42
-39
lines changed

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package clap.server.adapter.outbound.persistense.entity.task;
22

33
import clap.server.adapter.outbound.persistense.entity.common.BaseTimeEntity;
4+
import clap.server.adapter.outbound.persistense.entity.member.MemberEntity;
45
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskHistoryType;
56
import jakarta.persistence.*;
67
import lombok.AccessLevel;
78
import lombok.Builder;
89
import lombok.Getter;
910
import lombok.NoArgsConstructor;
1011
import lombok.experimental.SuperBuilder;
11-
import org.hibernate.annotations.SQLDelete;
1212
import org.hibernate.annotations.SQLRestriction;
1313

1414
@Entity
@@ -30,6 +30,10 @@ public class TaskHistoryEntity extends BaseTimeEntity {
3030
@Embedded
3131
private TaskModificationInfo taskModificationInfo;
3232

33+
@ManyToOne(fetch = FetchType.LAZY)
34+
@JoinColumn(name = "modified_member_id")
35+
private MemberEntity modifiedMember;
36+
3337
@OneToOne(fetch = FetchType.LAZY)
3438
@JoinColumn(name = "comment_id")
3539
private CommentEntity comment;

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package clap.server.adapter.outbound.persistense.entity.task;
22

3-
import clap.server.adapter.outbound.persistense.entity.member.MemberEntity;
4-
import jakarta.persistence.*;
3+
import jakarta.persistence.Embeddable;
4+
import jakarta.persistence.FetchType;
5+
import jakarta.persistence.JoinColumn;
6+
import jakarta.persistence.ManyToOne;
57
import lombok.AllArgsConstructor;
68
import lombok.Builder;
79
import lombok.Getter;
@@ -17,10 +19,6 @@ public class TaskModificationInfo {
1719
@JoinColumn(name = "task_id")
1820
private TaskEntity task;
1921

20-
@ManyToOne(fetch = FetchType.LAZY)
21-
@JoinColumn(name = "modified_member_id")
22-
private MemberEntity modifiedMember;
23-
2422
@JoinColumn(name = "modified_status")
2523
private String modifiedStatus;
2624
}

src/main/java/clap/server/application/mapper/response/TaskHistoryResponseMapper.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public static FindTaskHistoryResponse toFindTaskHistoryResponse(List<TaskHistory
2121
switch (taskHistory.getType()) {
2222
case PROCESSOR_CHANGED, PROCESSOR_ASSIGNED -> new FindTaskHistoryResponse.Details(
2323
new FindTaskHistoryResponse.TaskDetails(
24-
taskHistory.getTaskModificationInfo().getModifiedMember().getNickname()
24+
taskHistory.getModifiedMember().getNickname()
2525
),
2626
null,
2727
null
@@ -37,8 +37,8 @@ public static FindTaskHistoryResponse toFindTaskHistoryResponse(List<TaskHistory
3737
null,
3838
new FindTaskHistoryResponse.CommentDetails(
3939
taskHistory.getComment().getCommentId(),
40-
taskHistory.getComment().getMember().getNickname(),
41-
taskHistory.getComment().getMember().getImageUrl(),
40+
taskHistory.getModifiedMember().getNickname(),
41+
taskHistory.getModifiedMember().getImageUrl(),
4242
taskHistory.getComment().isModified(),
4343
taskHistory.getComment().getContent()
4444
),
@@ -49,8 +49,8 @@ public static FindTaskHistoryResponse toFindTaskHistoryResponse(List<TaskHistory
4949
null,
5050
new FindTaskHistoryResponse.CommentFileDetails(
5151
taskHistory.getComment().getCommentId(),
52-
taskHistory.getComment().getMember().getNickname(),
53-
taskHistory.getComment().getMember().getImageUrl(),
52+
taskHistory.getModifiedMember().getNickname(),
53+
taskHistory.getModifiedMember().getImageUrl(),
5454
taskHistory.getComment().getOriginalName(),
5555
taskHistory.getComment().getFileUrl(),
5656
taskHistory.getComment().getFileSize()

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
import clap.server.application.port.outbound.task.LoadTaskPort;
88
import clap.server.application.port.outbound.taskhistory.LoadTaskHistoryPort;
99
import clap.server.common.annotation.architecture.ApplicationService;
10-
import clap.server.domain.model.member.Member;
1110
import clap.server.domain.model.task.Task;
1211
import clap.server.domain.model.task.TaskHistory;
13-
import clap.server.exception.DomainException;
12+
import clap.server.exception.ApplicationException;
1413
import clap.server.exception.code.TaskErrorCode;
1514
import lombok.RequiredArgsConstructor;
1615
import org.springframework.transaction.annotation.Transactional;
@@ -29,7 +28,7 @@ public class FindTaskHistoriesService implements FindTaskHistoriesUsecase {
2928
public FindTaskHistoryResponse findTaskHistories(Long memberId, Long taskId) {
3029
memberService.findActiveMember(memberId);
3130
Task task = loadTaskPort.findById(taskId)
32-
.orElseThrow(()-> new DomainException(TaskErrorCode.TASK_NOT_FOUND));
31+
.orElseThrow(()-> new ApplicationException(TaskErrorCode.TASK_NOT_FOUND));
3332
List<TaskHistory> taskHistories = loadTaskHistoryPort.findAllTaskHistoriesByTaskId(task.getTaskId());
3433
return TaskHistoryResponseMapper.toFindTaskHistoryResponse(taskHistories);
3534
}

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

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,15 @@
99
import clap.server.application.port.inbound.history.SaveCommentAttachmentUsecase;
1010
import clap.server.application.port.inbound.history.SaveCommentUsecase;
1111
import clap.server.application.port.outbound.s3.S3UploadPort;
12-
import clap.server.application.port.outbound.task.CommandAttachmentPort;
1312
import clap.server.application.port.outbound.task.CommandCommentPort;
1413
import clap.server.application.port.outbound.taskhistory.CommandTaskHistoryPort;
1514
import clap.server.application.service.webhook.SendNotificationService;
1615
import clap.server.common.annotation.architecture.ApplicationService;
16+
import clap.server.common.constants.FilePathConstants;
1717
import clap.server.domain.model.member.Member;
18-
import clap.server.domain.model.task.Attachment;
1918
import clap.server.domain.model.task.Comment;
2019
import clap.server.domain.model.task.Task;
2120
import clap.server.domain.model.task.TaskHistory;
22-
import clap.server.common.constants.FilePathConstants;
2321
import clap.server.domain.policy.task.TaskCommentPolicy;
2422
import lombok.RequiredArgsConstructor;
2523
import org.springframework.transaction.annotation.Transactional;
@@ -53,7 +51,7 @@ public void save(Long memberId, Long taskId, CreateCommentRequest request) {
5351
Comment comment = Comment.createComment(member, task, request.content(), null, null, null);
5452
Comment savedComment = commandCommentPort.saveComment(comment);
5553

56-
TaskHistory taskHistory = TaskHistory.createTaskHistory(TaskHistoryType.COMMENT, task, null, member, savedComment);
54+
TaskHistory taskHistory = TaskHistory.createCommentTaskHistory(TaskHistoryType.COMMENT, member, savedComment);
5755
commandTaskHistoryPort.save(taskHistory);
5856

5957
Member processor = task.getProcessor();
@@ -76,10 +74,10 @@ public void saveCommentAttachment(Long memberId, Long taskId, MultipartFile file
7674
String fileUrl = s3UploadPort.uploadSingleFile(FilePathConstants.TASK_COMMENT, file);
7775
String fileName = file.getOriginalFilename();
7876

79-
Comment comment = Comment.createComment(member, task, null, fileName, fileUrl, formatFileSize(file.getSize()));
77+
Comment comment = Comment.createComment(member, task, null, fileName, fileUrl, formatFileSize(file.getSize()));
8078
Comment savedComment = commandCommentPort.saveComment(comment);
8179

82-
TaskHistory taskHistory = TaskHistory.createTaskHistory(TaskHistoryType.COMMENT_FILE, null, null, member, savedComment);
80+
TaskHistory taskHistory = TaskHistory.createCommentTaskHistory(TaskHistoryType.COMMENT_FILE, member, savedComment);
8381
commandTaskHistoryPort.save(taskHistory);
8482

8583
Member processor = task.getProcessor();
@@ -93,14 +91,6 @@ public void saveCommentAttachment(Long memberId, Long taskId, MultipartFile file
9391

9492
}
9593

96-
@Deprecated
97-
// private String saveAttachment(MultipartFile file, Task task) {
98-
// String fileUrl = s3UploadPort.uploadSingleFile(FilePathConstants.TASK_COMMENT, file);
99-
// Attachment attachment = Attachment.createCommentAttachment(task, null, file.getOriginalFilename(), fileUrl, file.getSize());
100-
// commandAttachmentPort.save(attachment);
101-
// return file.getOriginalFilename();
102-
// }
103-
10494
private void publishNotification(Member receiver, Task task, String message, String commenterName) {
10595
boolean isManager = receiver.getMemberInfo().getRole() == MemberRole.ROLE_MANAGER;
10696
sendNotificationService.sendPushNotification(receiver, NotificationType.COMMENT, task, message, null, commenterName, isManager);

src/main/java/clap/server/application/service/task/ApprovalTaskService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public ApprovalTaskResponse approvalTaskByReviewer(Long reviewerId, Long taskId,
5959
updateProcessorTaskCountService.handleTaskStatusChange(processor, TaskStatus.REQUESTED, TaskStatus.IN_PROGRESS);
6060
task.approveTask(reviewer, processor, approvalTaskRequest.dueDate(), category, label);
6161

62-
TaskHistory taskHistory = TaskHistory.createTaskHistory(TaskHistoryType.PROCESSOR_ASSIGNED, task, null, processor, null);
62+
TaskHistory taskHistory = TaskHistory.createTaskHistory(TaskHistoryType.PROCESSOR_ASSIGNED, task, null, processor);
6363
commandTaskHistoryPort.save(taskHistory);
6464

6565
String processorName = processor.getNickname();

src/main/java/clap/server/application/service/task/TerminateTaskService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public void terminateTask(Long memberId, Long taskId, String reason) {
3737
task.terminateTask();
3838
taskService.upsert(task);
3939

40-
TaskHistory taskHistory = TaskHistory.createTaskHistory(TaskHistoryType.TASK_TERMINATED, task, reason, null, null);
40+
TaskHistory taskHistory = TaskHistory.createTaskHistory(TaskHistoryType.TASK_TERMINATED, task, reason, null);
4141
commandTaskHistoryPort.save(taskHistory);
4242

4343
publishNotification(task.getRequester(), task, task.getTaskStatus().getDescription(), reason);

src/main/java/clap/server/application/service/task/UpdateTaskOrderAndStstusService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public void updateTaskOrderAndStatus(Long processorId, UpdateTaskOrderRequest re
8282
updatedTask = updateNewTaskOrderAndStatus(targetStatus, targetTask, newOrder);
8383
}
8484

85-
TaskHistory taskHistory = TaskHistory.createTaskHistory(TaskHistoryType.STATUS_SWITCHED, updatedTask, targetStatus.getDescription(), null,null);
85+
TaskHistory taskHistory = TaskHistory.createTaskHistory(TaskHistoryType.STATUS_SWITCHED, updatedTask, targetStatus.getDescription(), null);
8686
commandTaskHistoryPort.save(taskHistory);
8787
publishNotification(targetTask);
8888
}

src/main/java/clap/server/application/service/task/UpdateTaskService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public void updateTaskStatus(Long memberId, Long taskId, TaskStatus targetTaskSt
5757
task.updateTaskStatus(targetTaskStatus);
5858
Task updatedTask = taskService.upsert(task);
5959

60-
saveTaskHistory(TaskHistory.createTaskHistory(TaskHistoryType.STATUS_SWITCHED, task, targetTaskStatus.getDescription(), null, null));
60+
saveTaskHistory(TaskHistory.createTaskHistory(TaskHistoryType.STATUS_SWITCHED, task, targetTaskStatus.getDescription(), null));
6161

6262
List<Member> receivers = List.of(task.getRequester());
6363
publishNotification(receivers, updatedTask, NotificationType.STATUS_SWITCHED, targetTaskStatus.getDescription());
@@ -79,7 +79,7 @@ public void updateTaskProcessor(Long taskId, Long memberId, UpdateTaskProcessorR
7979
task.updateProcessor(processor);
8080
Task updatedTask = taskService.upsert(task);
8181

82-
saveTaskHistory(TaskHistory.createTaskHistory(TaskHistoryType.PROCESSOR_CHANGED, task, null, processor, null));
82+
saveTaskHistory(TaskHistory.createTaskHistory(TaskHistoryType.PROCESSOR_CHANGED, task, null, processor));
8383

8484
List<Member> receivers = List.of(updatedTask.getRequester());
8585
publishNotification(receivers, updatedTask, NotificationType.PROCESSOR_CHANGED, processor.getNickname());

src/main/java/clap/server/domain/model/task/TaskHistory.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
package clap.server.domain.model.task;
22

33
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskHistoryType;
4-
54
import clap.server.domain.model.common.BaseTime;
65
import clap.server.domain.model.member.Member;
7-
86
import lombok.*;
97
import lombok.experimental.SuperBuilder;
108

@@ -15,6 +13,7 @@ public class TaskHistory extends BaseTime {
1513
private Long taskHistoryId;
1614
private TaskHistoryType type;
1715
private TaskModificationInfo taskModificationInfo;
16+
private Member modifiedMember;
1817
private Comment comment;
1918

2019
@Getter
@@ -23,20 +22,33 @@ public class TaskHistory extends BaseTime {
2322
@NoArgsConstructor(access = AccessLevel.PROTECTED)
2423
public static class TaskModificationInfo {
2524
private Task task;
26-
private Member modifiedMember;
2725
private String modifiedStatus;
2826
}
2927

30-
public static TaskHistory createTaskHistory(TaskHistoryType type, Task task, String statusDescription, Member member, Comment comment) {
28+
public static TaskHistory createTaskHistory(TaskHistoryType type, Task task, String statusDescription, Member member) {
3129
return TaskHistory.builder()
3230
.type(type)
31+
.modifiedMember(member)
3332
.taskModificationInfo(
3433
TaskModificationInfo.builder()
3534
.task(task)
36-
.modifiedMember(member)
3735
.modifiedStatus(statusDescription)
3836
.build()
3937
)
38+
.comment(null)
39+
.build();
40+
}
41+
42+
public static TaskHistory createCommentTaskHistory(TaskHistoryType type, Member member, Comment comment) {
43+
return TaskHistory.builder()
44+
.type(type)
45+
.modifiedMember(member)
46+
.taskModificationInfo(
47+
TaskModificationInfo.builder()
48+
.task(null)
49+
.modifiedStatus(null)
50+
.build()
51+
)
4052
.comment(comment)
4153
.build();
4254
}

0 commit comments

Comments
 (0)