-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathTaskMapper.java
More file actions
141 lines (125 loc) · 5.82 KB
/
TaskMapper.java
File metadata and controls
141 lines (125 loc) · 5.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
package clap.server.application.mapper;
import clap.server.adapter.inbound.web.dto.task.*;
import clap.server.adapter.inbound.web.dto.task.response.TaskBoardResponse;
import clap.server.adapter.inbound.web.dto.task.response.TaskItemResponse;
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus;
import clap.server.domain.model.task.Attachment;
import clap.server.domain.model.task.Task;
import org.springframework.data.domain.Slice;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class TaskMapper {
private TaskMapper() {
throw new IllegalArgumentException();
}
public static CreateTaskResponse toCreateTaskResponse(Task task) {
return new CreateTaskResponse(task.getTaskId(), task.getCategory().getCategoryId(), task.getTitle());
}
public static UpdateTaskResponse toUpdateTaskResponse(Task task) {
return new UpdateTaskResponse(task.getTaskId(), task.getCategory().getCategoryId(), task.getTitle());
}
public static FilterRequestedTasksResponse toFilterRequestedTasksResponse(Task task) {
return new FilterRequestedTasksResponse(
task.getTaskId(),
task.getTaskCode(),
task.getUpdatedAt(),
task.getCategory().getMainCategory().getName(),
task.getCategory().getName(),
task.getTitle(),
task.getProcessor() != null ? task.getProcessor().getMemberInfo().getNickname() : "",
task.getTaskStatus(),
task.getFinishedAt() != null ? task.getFinishedAt() : null
);
}
public static FilterPendingApprovalResponse toFilterPendingApprovalTasksResponse(Task task) {
return new FilterPendingApprovalResponse(
task.getTaskId(),
task.getTaskCode(),
task.getUpdatedAt(),
task.getCategory().getMainCategory().getName(),
task.getCategory().getName(),
task.getTitle(),
task.getRequester().getMemberInfo().getNickname()
);
}
public static FindTaskDetailsResponse toFindTaskDetailResponse(Task task, List<Attachment> attachments){
List<AttachmentResponse> attachmentResponses = attachments.stream()
.map(attachment -> new AttachmentResponse(
attachment.getAttachmentId(),
attachment.getOriginalName(),
attachment.getFileSize(),
attachment.getFileUrl(),
attachment.getCreatedAt()
))
.collect(Collectors.toList());
return new FindTaskDetailsResponse(
task.getTaskId(),
task.getTaskCode(),
task.getCreatedAt(),
task.getFinishedAt(),
task.getTaskStatus(),
task.getRequester().getMemberInfo().getNickname(),
task.getRequester().getImageUrl(),
task.getProcessor() != null ? task.getProcessor().getMemberInfo().getNickname() : "",
task.getProcessor() != null ? task.getProcessor().getImageUrl() : "",
task.getCategory().getMainCategory().getName(),
task.getCategory().getName(),
task.getTitle(),
task.getDescription(),
attachmentResponses
);
}
public static ApprovalTaskResponse toApprovalTaskResponse(Task approvedTask) {
return new ApprovalTaskResponse(
approvedTask.getTaskId(),
approvedTask.getProcessor().getNickname(),
approvedTask.getReviewer().getNickname(),
approvedTask.getDueDate(),
approvedTask.getLabel().getLabelName(),
approvedTask.getTaskStatus()
);
}
public static FilterAllTasksResponse toFilterAllTasksResponse(Task task) {
return new FilterAllTasksResponse(
task.getTaskId(),
task.getTaskCode(),
task.getUpdatedAt(),
task.getCategory().getMainCategory().getName(),
task.getCategory().getName(),
task.getTitle(),
task.getRequester().getMemberInfo().getNickname(),
task.getProcessor() != null ? task.getProcessor().getMemberInfo().getNickname() : "",
task.getTaskStatus(),
task.getFinishedAt() != null ? task.getFinishedAt() : null
);
}
public static TaskBoardResponse toSliceTaskItemResponse(Slice<Task> tasks) {
Map<TaskStatus, List<TaskItemResponse>> tasksByStatus =tasks.getContent().stream()
.map(TaskMapper::toTaskItemResponse)
.collect(Collectors.groupingBy(TaskItemResponse::taskStatus));
return new TaskBoardResponse(
tasksByStatus.getOrDefault(TaskStatus.IN_PROGRESS, Collections.emptyList()),
tasksByStatus.getOrDefault(TaskStatus.PENDING_COMPLETED, Collections.emptyList()),
tasksByStatus.getOrDefault(TaskStatus.COMPLETED, Collections.emptyList()),
tasks.hasNext(),
tasks.isFirst(),
tasks.isLast()
);
}
private static TaskItemResponse toTaskItemResponse(Task task) {
return new TaskItemResponse(
task.getTaskId(),
task.getTaskCode(),
task.getCategory().getMainCategory().getName(),
task.getCategory().getName(),
task.getRequester().getNickname(),
task.getRequester().getImageUrl(),
task.getRequester().getMemberInfo().getDepartment().getName(),
task.getProcessorOrder(),
task.getTaskStatus(),
task.getCreatedAt()
);
}
}