@@ -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