From 650c84aa08b7bad9c70910b3bc3696a562b28792 Mon Sep 17 00:00:00 2001 From: parkjaehak Date: Wed, 12 Feb 2025 14:28:21 +0900 Subject: [PATCH 1/3] =?UTF-8?q?CLAP-399=20HotFix:=20=EC=9E=91=EC=97=85=20?= =?UTF-8?q?=EC=9A=94=EC=B2=AD=20=ED=8C=8C=EC=9D=BC=20=EC=97=85=EB=A1=9C?= =?UTF-8?q?=EB=93=9C=20=EC=98=A4=EB=A5=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/service/task/UpdateTaskService.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/clap/server/application/service/task/UpdateTaskService.java b/src/main/java/clap/server/application/service/task/UpdateTaskService.java index 6daad0ed..da3ead40 100644 --- a/src/main/java/clap/server/application/service/task/UpdateTaskService.java +++ b/src/main/java/clap/server/application/service/task/UpdateTaskService.java @@ -72,6 +72,9 @@ public void updateTask(Long requesterId, Long taskId, UpdateTaskRequest request, if (!request.attachmentsToDelete().isEmpty()) { updateAttachments(request.attachmentsToDelete(), files, task); } + else { + updateAttachmentWithoutAttachmentsToDelete(files, task); + } task.updateTask(requesterId, category, request.title(), request.description(), attachmentCount); taskService.upsert(task); } @@ -137,7 +140,14 @@ private void updateAttachments(List attachmentIdsToDelete, List attachments = AttachmentMapper.toTaskAttachments(task, files, fileUrls); commandAttachmentPort.saveAll(attachments); } + } + private void updateAttachmentWithoutAttachmentsToDelete(List files, Task task) { + if (files != null) { + List fileUrls = s3UploadPort.uploadFiles(FilePathConstants.TASK_FILE, files); + List attachments = AttachmentMapper.toTaskAttachments(task, files, fileUrls); + commandAttachmentPort.saveAll(attachments); + } } private List validateAndGetAttachments(List attachmentIdsToDelete, Task task) { From bdbd949269fb8cf9d0b6fbdce5d7513660c622a8 Mon Sep 17 00:00:00 2001 From: parkjaehak Date: Wed, 12 Feb 2025 14:52:31 +0900 Subject: [PATCH 2/3] =?UTF-8?q?CLAP-399=20HotFix:=20=EC=82=AD=EC=A0=9C=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EB=A1=9C=EC=A7=81=EA=B3=BC=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=97=85=EB=A1=9C=EB=93=9C=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/task/UpdateTaskService.java | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/src/main/java/clap/server/application/service/task/UpdateTaskService.java b/src/main/java/clap/server/application/service/task/UpdateTaskService.java index da3ead40..ce231632 100644 --- a/src/main/java/clap/server/application/service/task/UpdateTaskService.java +++ b/src/main/java/clap/server/application/service/task/UpdateTaskService.java @@ -70,10 +70,14 @@ public void updateTask(Long requesterId, Long taskId, UpdateTaskRequest request, throw new ApplicationException(TaskErrorCode.FILE_COUNT_EXCEEDED); } if (!request.attachmentsToDelete().isEmpty()) { - updateAttachments(request.attachmentsToDelete(), files, task); + List attachmentsToDelete = validateAndGetAttachments(request.attachmentsToDelete(), task); + attachmentsToDelete.stream() + .peek(Attachment::softDelete) + .forEach(commandAttachmentPort::save); + updateAttachments(files, task); } else { - updateAttachmentWithoutAttachmentsToDelete(files, task); + updateAttachments(files, task); } task.updateTask(requesterId, category, request.title(), request.description(), attachmentCount); taskService.upsert(task); @@ -129,20 +133,7 @@ public void updateTaskLabel(Long taskId, Long memberId, UpdateTaskLabelRequest r taskService.upsert(task); } - private void updateAttachments(List attachmentIdsToDelete, List files, Task task) { - List attachmentsToDelete = validateAndGetAttachments(attachmentIdsToDelete, task); - attachmentsToDelete.stream() - .peek(Attachment::softDelete) - .forEach(commandAttachmentPort::save); - - if (files != null) { - List fileUrls = s3UploadPort.uploadFiles(FilePathConstants.TASK_FILE, files); - List attachments = AttachmentMapper.toTaskAttachments(task, files, fileUrls); - commandAttachmentPort.saveAll(attachments); - } - } - - private void updateAttachmentWithoutAttachmentsToDelete(List files, Task task) { + private void updateAttachments(List files, Task task) { if (files != null) { List fileUrls = s3UploadPort.uploadFiles(FilePathConstants.TASK_FILE, files); List attachments = AttachmentMapper.toTaskAttachments(task, files, fileUrls); From 65a1d344a923ff801b598d56c987f1648e941363 Mon Sep 17 00:00:00 2001 From: parkjaehak Date: Wed, 12 Feb 2025 15:03:58 +0900 Subject: [PATCH 3/3] =?UTF-8?q?CLAP-399=20Refactor:=20=EC=B2=A8=EB=B6=80?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EA=B0=9C=EC=88=98=20=EC=A0=80=EC=9E=A5=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/task/UpdateTaskService.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/clap/server/application/service/task/UpdateTaskService.java b/src/main/java/clap/server/application/service/task/UpdateTaskService.java index ce231632..9f3a4a92 100644 --- a/src/main/java/clap/server/application/service/task/UpdateTaskService.java +++ b/src/main/java/clap/server/application/service/task/UpdateTaskService.java @@ -63,20 +63,15 @@ public void updateTask(Long requesterId, Long taskId, UpdateTaskRequest request, memberService.findActiveMember(requesterId); Category category = categoryService.findById(request.categoryId()); Task task = taskService.findById(taskId); + int attachmentCount = getAttachmentCount(request, files, task); - int attachmentToAdd = files==null? 0 : files.size(); - int attachmentCount = task.getAttachmentCount() - request.attachmentsToDelete().size() + attachmentToAdd; - if (attachmentCount > TASK_MAX_FILE_COUNT) { - throw new ApplicationException(TaskErrorCode.FILE_COUNT_EXCEEDED); - } if (!request.attachmentsToDelete().isEmpty()) { List attachmentsToDelete = validateAndGetAttachments(request.attachmentsToDelete(), task); attachmentsToDelete.stream() .peek(Attachment::softDelete) .forEach(commandAttachmentPort::save); - updateAttachments(files, task); } - else { + if (files != null) { updateAttachments(files, task); } task.updateTask(requesterId, category, request.title(), request.description(), attachmentCount); @@ -134,11 +129,18 @@ public void updateTaskLabel(Long taskId, Long memberId, UpdateTaskLabelRequest r } private void updateAttachments(List files, Task task) { - if (files != null) { - List fileUrls = s3UploadPort.uploadFiles(FilePathConstants.TASK_FILE, files); - List attachments = AttachmentMapper.toTaskAttachments(task, files, fileUrls); - commandAttachmentPort.saveAll(attachments); + List fileUrls = s3UploadPort.uploadFiles(FilePathConstants.TASK_FILE, files); + List attachments = AttachmentMapper.toTaskAttachments(task, files, fileUrls); + commandAttachmentPort.saveAll(attachments); + } + + private static int getAttachmentCount(UpdateTaskRequest request, List files, Task task) { + int attachmentToAdd = files == null ? 0 : files.size(); + int attachmentCount = task.getAttachmentCount() - request.attachmentsToDelete().size() + attachmentToAdd; + if (attachmentCount > TASK_MAX_FILE_COUNT) { + throw new ApplicationException(TaskErrorCode.FILE_COUNT_EXCEEDED); } + return attachmentCount; } private List validateAndGetAttachments(List attachmentIdsToDelete, Task task) {