Skip to content

Commit 65a1d34

Browse files
committed
CLAP-399 Refactor: 첨부파일 개수 저장 로직 분리
1 parent bdbd949 commit 65a1d34

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

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

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -63,20 +63,15 @@ public void updateTask(Long requesterId, Long taskId, UpdateTaskRequest request,
6363
memberService.findActiveMember(requesterId);
6464
Category category = categoryService.findById(request.categoryId());
6565
Task task = taskService.findById(taskId);
66+
int attachmentCount = getAttachmentCount(request, files, task);
6667

67-
int attachmentToAdd = files==null? 0 : files.size();
68-
int attachmentCount = task.getAttachmentCount() - request.attachmentsToDelete().size() + attachmentToAdd;
69-
if (attachmentCount > TASK_MAX_FILE_COUNT) {
70-
throw new ApplicationException(TaskErrorCode.FILE_COUNT_EXCEEDED);
71-
}
7268
if (!request.attachmentsToDelete().isEmpty()) {
7369
List<Attachment> attachmentsToDelete = validateAndGetAttachments(request.attachmentsToDelete(), task);
7470
attachmentsToDelete.stream()
7571
.peek(Attachment::softDelete)
7672
.forEach(commandAttachmentPort::save);
77-
updateAttachments(files, task);
7873
}
79-
else {
74+
if (files != null) {
8075
updateAttachments(files, task);
8176
}
8277
task.updateTask(requesterId, category, request.title(), request.description(), attachmentCount);
@@ -134,11 +129,18 @@ public void updateTaskLabel(Long taskId, Long memberId, UpdateTaskLabelRequest r
134129
}
135130

136131
private void updateAttachments(List<MultipartFile> files, Task task) {
137-
if (files != null) {
138-
List<String> fileUrls = s3UploadPort.uploadFiles(FilePathConstants.TASK_FILE, files);
139-
List<Attachment> attachments = AttachmentMapper.toTaskAttachments(task, files, fileUrls);
140-
commandAttachmentPort.saveAll(attachments);
132+
List<String> fileUrls = s3UploadPort.uploadFiles(FilePathConstants.TASK_FILE, files);
133+
List<Attachment> attachments = AttachmentMapper.toTaskAttachments(task, files, fileUrls);
134+
commandAttachmentPort.saveAll(attachments);
135+
}
136+
137+
private static int getAttachmentCount(UpdateTaskRequest request, List<MultipartFile> files, Task task) {
138+
int attachmentToAdd = files == null ? 0 : files.size();
139+
int attachmentCount = task.getAttachmentCount() - request.attachmentsToDelete().size() + attachmentToAdd;
140+
if (attachmentCount > TASK_MAX_FILE_COUNT) {
141+
throw new ApplicationException(TaskErrorCode.FILE_COUNT_EXCEEDED);
141142
}
143+
return attachmentCount;
142144
}
143145

144146
private List<Attachment> validateAndGetAttachments(List<Long> attachmentIdsToDelete, Task task) {

0 commit comments

Comments
 (0)