From 31290b57afa3fafae42340d54f0b156e5bb25340 Mon Sep 17 00:00:00 2001 From: andrew Date: Tue, 28 Jan 2025 16:55:26 +0900 Subject: [PATCH 1/4] =?UTF-8?q?CLAP-159=20Feat:=20=EC=9E=91=EC=97=85=20?= =?UTF-8?q?=EA=B5=AC=EB=B6=84=20=EB=B3=80=EA=B2=BD=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/dto/task/UpdateTaskLabelRequest.java | 6 ++++ .../web/task/ManagementTaskController.java | 11 +++++++ .../application/Task/UpdateTaskService.java | 33 ++++++++++++++----- .../inbound/task/UpdateTaskLabelUsecase.java | 8 +++++ .../clap/server/domain/model/task/Task.java | 4 +++ 5 files changed, 53 insertions(+), 9 deletions(-) create mode 100644 src/main/java/clap/server/adapter/inbound/web/dto/task/UpdateTaskLabelRequest.java create mode 100644 src/main/java/clap/server/application/port/inbound/task/UpdateTaskLabelUsecase.java diff --git a/src/main/java/clap/server/adapter/inbound/web/dto/task/UpdateTaskLabelRequest.java b/src/main/java/clap/server/adapter/inbound/web/dto/task/UpdateTaskLabelRequest.java new file mode 100644 index 00000000..46e6bab5 --- /dev/null +++ b/src/main/java/clap/server/adapter/inbound/web/dto/task/UpdateTaskLabelRequest.java @@ -0,0 +1,6 @@ +package clap.server.adapter.inbound.web.dto.task; + +public record UpdateTaskLabelRequest( + Long labelId +) { +} diff --git a/src/main/java/clap/server/adapter/inbound/web/task/ManagementTaskController.java b/src/main/java/clap/server/adapter/inbound/web/task/ManagementTaskController.java index ab045008..f72aaf0d 100644 --- a/src/main/java/clap/server/adapter/inbound/web/task/ManagementTaskController.java +++ b/src/main/java/clap/server/adapter/inbound/web/task/ManagementTaskController.java @@ -31,6 +31,7 @@ public class ManagementTaskController { private final UpdateTaskUsecase updateTaskUsecase; private final UpdateTaskStatusUsecase updateTaskStatusUsecase; private final UpdateTaskProcessorUsecase updateTaskProcessorUsecase; + private final UpdateTaskLabelUsecase updateTaskLabelUsecase; private final ApprovalTaskUsecase approvalTaskUsecase; @Operation(summary = "작업 요청 생성") @@ -76,6 +77,16 @@ public ResponseEntity updateTaskProcessor( return ResponseEntity.ok(updateTaskProcessorUsecase.updateTaskProcessor(taskId, userInfo.getUserId(), updateTaskProcessorRequest)); } + @Operation(summary = "작업 구분 변경") + @Secured({"ROLE_MANAGER"}) + @PatchMapping("/label/{taskId}") + public ResponseEntity updateTaskLabel( + @PathVariable Long taskId, + @AuthenticationPrincipal SecurityUserDetails userInfo, + @RequestBody UpdateTaskLabelRequest updateTaskLabelRequest) { + return ResponseEntity.ok(updateTaskLabelUsecase.updateTaskLabel(taskId, userInfo.getUserId(), updateTaskLabelRequest)); + } + @Operation(summary = "작업 승인") @Secured({"ROLE_MANAGER"}) @PostMapping("/approval/{taskId}") diff --git a/src/main/java/clap/server/application/Task/UpdateTaskService.java b/src/main/java/clap/server/application/Task/UpdateTaskService.java index 372f2cba..d8163b6c 100644 --- a/src/main/java/clap/server/application/Task/UpdateTaskService.java +++ b/src/main/java/clap/server/application/Task/UpdateTaskService.java @@ -1,29 +1,26 @@ package clap.server.application.Task; -import clap.server.adapter.inbound.web.dto.task.UpdateTaskRequest; -import clap.server.adapter.inbound.web.dto.task.UpdateTaskResponse; -import clap.server.adapter.inbound.web.dto.task.UpdateTaskStatusRequest; -import clap.server.adapter.inbound.web.dto.task.UpdateTaskProcessorRequest; +import clap.server.adapter.inbound.web.dto.task.*; import clap.server.adapter.outbound.infrastructure.s3.S3UploadAdapter; import clap.server.application.mapper.AttachmentMapper; import clap.server.application.mapper.TaskMapper; import clap.server.application.port.inbound.domain.CategoryService; import clap.server.application.port.inbound.domain.MemberService; import clap.server.application.port.inbound.domain.TaskService; +import clap.server.application.port.inbound.task.UpdateTaskLabelUsecase; import clap.server.application.port.inbound.task.UpdateTaskProcessorUsecase; import clap.server.application.port.inbound.task.UpdateTaskStatusUsecase; import clap.server.application.port.inbound.task.UpdateTaskUsecase; import clap.server.application.port.outbound.task.CommandAttachmentPort; import clap.server.application.port.outbound.task.CommandTaskPort; import clap.server.application.port.outbound.task.LoadAttachmentPort; +import clap.server.application.port.outbound.task.LoadLabelPort; import clap.server.common.annotation.architecture.ApplicationService; import clap.server.domain.model.member.Member; -import clap.server.domain.model.task.Attachment; -import clap.server.domain.model.task.Category; -import clap.server.domain.model.task.FilePath; -import clap.server.domain.model.task.Task; +import clap.server.domain.model.task.*; import clap.server.exception.ApplicationException; +import clap.server.exception.code.LabelErrorCode; import clap.server.exception.code.MemberErrorCode; import clap.server.exception.code.TaskErrorCode; import lombok.RequiredArgsConstructor; @@ -34,17 +31,20 @@ import java.util.List; import java.util.Objects; +import static clap.server.exception.code.MemberErrorCode.ACTIVE_MEMBER_NOT_FOUND; + @ApplicationService @RequiredArgsConstructor @Slf4j -public class UpdateTaskService implements UpdateTaskUsecase, UpdateTaskStatusUsecase, UpdateTaskProcessorUsecase { +public class UpdateTaskService implements UpdateTaskUsecase, UpdateTaskStatusUsecase, UpdateTaskProcessorUsecase, UpdateTaskLabelUsecase { private final MemberService memberService; private final CategoryService categoryService; private final TaskService taskService; private final CommandTaskPort commandTaskPort; private final LoadAttachmentPort loadAttachmentPort; + private final LoadLabelPort loadLabelPort; private final CommandAttachmentPort commandAttachmentPort; private final S3UploadAdapter s3UploadAdapter; @@ -96,6 +96,21 @@ public UpdateTaskResponse updateTaskProcessor(Long taskId, Long userId, UpdateTa // TODO : 알림 생성 로직 및 푸시 알림 로직 추가 } + @Transactional + @Override + public UpdateTaskResponse updateTaskLabel(Long taskId, Long userId, UpdateTaskLabelRequest request) { + Member reviewer = memberService.findActiveMember(userId); + if (!reviewer.isReviewer()) { + throw new ApplicationException(MemberErrorCode.NOT_A_REVIEWER); + } + Task task = taskService.findById(taskId); + Label label = loadLabelPort.findById(request.labelId()).orElseThrow(() -> new ApplicationException(LabelErrorCode.LABEL_NOT_FOUND)); + + task.updateLabel(label); + Task updatetask = commandTaskPort.save(task); + return TaskMapper.toUpdateTaskResponse(updatetask); + } + private void updateAttachments(List attachmentIdsToDelete, List files, Task task) { List attachmentsToDelete = validateAndGetAttachments(attachmentIdsToDelete, task); attachmentsToDelete.forEach(Attachment::softDelete); diff --git a/src/main/java/clap/server/application/port/inbound/task/UpdateTaskLabelUsecase.java b/src/main/java/clap/server/application/port/inbound/task/UpdateTaskLabelUsecase.java new file mode 100644 index 00000000..be5c66dc --- /dev/null +++ b/src/main/java/clap/server/application/port/inbound/task/UpdateTaskLabelUsecase.java @@ -0,0 +1,8 @@ +package clap.server.application.port.inbound.task; + +import clap.server.adapter.inbound.web.dto.task.UpdateTaskLabelRequest; +import clap.server.adapter.inbound.web.dto.task.UpdateTaskResponse; + +public interface UpdateTaskLabelUsecase { + UpdateTaskResponse updateTaskLabel(Long taskId, Long userId, UpdateTaskLabelRequest request); +} diff --git a/src/main/java/clap/server/domain/model/task/Task.java b/src/main/java/clap/server/domain/model/task/Task.java index fb17bcd0..3b0b2814 100644 --- a/src/main/java/clap/server/domain/model/task/Task.java +++ b/src/main/java/clap/server/domain/model/task/Task.java @@ -67,6 +67,10 @@ public void updateProcessor(Member processor) { this.processor = processor; } + public void updateLabel(Label label) { + this.label = label; + } + public void approveTask(Member reviewer, Member processor, LocalDateTime dueDate, Category category, Label label) { this.reviewer = reviewer; this.processor = processor; From 5124c195c655d83cb2006b98918350bfaa95ffbc Mon Sep 17 00:00:00 2001 From: andrew Date: Tue, 28 Jan 2025 16:55:26 +0900 Subject: [PATCH 2/4] =?UTF-8?q?CLAP-161=20Feat:=20=EC=9E=91=EC=97=85=20?= =?UTF-8?q?=EA=B5=AC=EB=B6=84=20=EB=B3=80=EA=B2=BD=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/dto/task/UpdateTaskLabelRequest.java | 6 ++++ .../web/task/ManagementTaskController.java | 11 +++++++ .../application/Task/UpdateTaskService.java | 33 ++++++++++++++----- .../inbound/task/UpdateTaskLabelUsecase.java | 8 +++++ .../clap/server/domain/model/task/Task.java | 4 +++ 5 files changed, 53 insertions(+), 9 deletions(-) create mode 100644 src/main/java/clap/server/adapter/inbound/web/dto/task/UpdateTaskLabelRequest.java create mode 100644 src/main/java/clap/server/application/port/inbound/task/UpdateTaskLabelUsecase.java diff --git a/src/main/java/clap/server/adapter/inbound/web/dto/task/UpdateTaskLabelRequest.java b/src/main/java/clap/server/adapter/inbound/web/dto/task/UpdateTaskLabelRequest.java new file mode 100644 index 00000000..46e6bab5 --- /dev/null +++ b/src/main/java/clap/server/adapter/inbound/web/dto/task/UpdateTaskLabelRequest.java @@ -0,0 +1,6 @@ +package clap.server.adapter.inbound.web.dto.task; + +public record UpdateTaskLabelRequest( + Long labelId +) { +} diff --git a/src/main/java/clap/server/adapter/inbound/web/task/ManagementTaskController.java b/src/main/java/clap/server/adapter/inbound/web/task/ManagementTaskController.java index ab045008..f72aaf0d 100644 --- a/src/main/java/clap/server/adapter/inbound/web/task/ManagementTaskController.java +++ b/src/main/java/clap/server/adapter/inbound/web/task/ManagementTaskController.java @@ -31,6 +31,7 @@ public class ManagementTaskController { private final UpdateTaskUsecase updateTaskUsecase; private final UpdateTaskStatusUsecase updateTaskStatusUsecase; private final UpdateTaskProcessorUsecase updateTaskProcessorUsecase; + private final UpdateTaskLabelUsecase updateTaskLabelUsecase; private final ApprovalTaskUsecase approvalTaskUsecase; @Operation(summary = "작업 요청 생성") @@ -76,6 +77,16 @@ public ResponseEntity updateTaskProcessor( return ResponseEntity.ok(updateTaskProcessorUsecase.updateTaskProcessor(taskId, userInfo.getUserId(), updateTaskProcessorRequest)); } + @Operation(summary = "작업 구분 변경") + @Secured({"ROLE_MANAGER"}) + @PatchMapping("/label/{taskId}") + public ResponseEntity updateTaskLabel( + @PathVariable Long taskId, + @AuthenticationPrincipal SecurityUserDetails userInfo, + @RequestBody UpdateTaskLabelRequest updateTaskLabelRequest) { + return ResponseEntity.ok(updateTaskLabelUsecase.updateTaskLabel(taskId, userInfo.getUserId(), updateTaskLabelRequest)); + } + @Operation(summary = "작업 승인") @Secured({"ROLE_MANAGER"}) @PostMapping("/approval/{taskId}") diff --git a/src/main/java/clap/server/application/Task/UpdateTaskService.java b/src/main/java/clap/server/application/Task/UpdateTaskService.java index 372f2cba..d8163b6c 100644 --- a/src/main/java/clap/server/application/Task/UpdateTaskService.java +++ b/src/main/java/clap/server/application/Task/UpdateTaskService.java @@ -1,29 +1,26 @@ package clap.server.application.Task; -import clap.server.adapter.inbound.web.dto.task.UpdateTaskRequest; -import clap.server.adapter.inbound.web.dto.task.UpdateTaskResponse; -import clap.server.adapter.inbound.web.dto.task.UpdateTaskStatusRequest; -import clap.server.adapter.inbound.web.dto.task.UpdateTaskProcessorRequest; +import clap.server.adapter.inbound.web.dto.task.*; import clap.server.adapter.outbound.infrastructure.s3.S3UploadAdapter; import clap.server.application.mapper.AttachmentMapper; import clap.server.application.mapper.TaskMapper; import clap.server.application.port.inbound.domain.CategoryService; import clap.server.application.port.inbound.domain.MemberService; import clap.server.application.port.inbound.domain.TaskService; +import clap.server.application.port.inbound.task.UpdateTaskLabelUsecase; import clap.server.application.port.inbound.task.UpdateTaskProcessorUsecase; import clap.server.application.port.inbound.task.UpdateTaskStatusUsecase; import clap.server.application.port.inbound.task.UpdateTaskUsecase; import clap.server.application.port.outbound.task.CommandAttachmentPort; import clap.server.application.port.outbound.task.CommandTaskPort; import clap.server.application.port.outbound.task.LoadAttachmentPort; +import clap.server.application.port.outbound.task.LoadLabelPort; import clap.server.common.annotation.architecture.ApplicationService; import clap.server.domain.model.member.Member; -import clap.server.domain.model.task.Attachment; -import clap.server.domain.model.task.Category; -import clap.server.domain.model.task.FilePath; -import clap.server.domain.model.task.Task; +import clap.server.domain.model.task.*; import clap.server.exception.ApplicationException; +import clap.server.exception.code.LabelErrorCode; import clap.server.exception.code.MemberErrorCode; import clap.server.exception.code.TaskErrorCode; import lombok.RequiredArgsConstructor; @@ -34,17 +31,20 @@ import java.util.List; import java.util.Objects; +import static clap.server.exception.code.MemberErrorCode.ACTIVE_MEMBER_NOT_FOUND; + @ApplicationService @RequiredArgsConstructor @Slf4j -public class UpdateTaskService implements UpdateTaskUsecase, UpdateTaskStatusUsecase, UpdateTaskProcessorUsecase { +public class UpdateTaskService implements UpdateTaskUsecase, UpdateTaskStatusUsecase, UpdateTaskProcessorUsecase, UpdateTaskLabelUsecase { private final MemberService memberService; private final CategoryService categoryService; private final TaskService taskService; private final CommandTaskPort commandTaskPort; private final LoadAttachmentPort loadAttachmentPort; + private final LoadLabelPort loadLabelPort; private final CommandAttachmentPort commandAttachmentPort; private final S3UploadAdapter s3UploadAdapter; @@ -96,6 +96,21 @@ public UpdateTaskResponse updateTaskProcessor(Long taskId, Long userId, UpdateTa // TODO : 알림 생성 로직 및 푸시 알림 로직 추가 } + @Transactional + @Override + public UpdateTaskResponse updateTaskLabel(Long taskId, Long userId, UpdateTaskLabelRequest request) { + Member reviewer = memberService.findActiveMember(userId); + if (!reviewer.isReviewer()) { + throw new ApplicationException(MemberErrorCode.NOT_A_REVIEWER); + } + Task task = taskService.findById(taskId); + Label label = loadLabelPort.findById(request.labelId()).orElseThrow(() -> new ApplicationException(LabelErrorCode.LABEL_NOT_FOUND)); + + task.updateLabel(label); + Task updatetask = commandTaskPort.save(task); + return TaskMapper.toUpdateTaskResponse(updatetask); + } + private void updateAttachments(List attachmentIdsToDelete, List files, Task task) { List attachmentsToDelete = validateAndGetAttachments(attachmentIdsToDelete, task); attachmentsToDelete.forEach(Attachment::softDelete); diff --git a/src/main/java/clap/server/application/port/inbound/task/UpdateTaskLabelUsecase.java b/src/main/java/clap/server/application/port/inbound/task/UpdateTaskLabelUsecase.java new file mode 100644 index 00000000..be5c66dc --- /dev/null +++ b/src/main/java/clap/server/application/port/inbound/task/UpdateTaskLabelUsecase.java @@ -0,0 +1,8 @@ +package clap.server.application.port.inbound.task; + +import clap.server.adapter.inbound.web.dto.task.UpdateTaskLabelRequest; +import clap.server.adapter.inbound.web.dto.task.UpdateTaskResponse; + +public interface UpdateTaskLabelUsecase { + UpdateTaskResponse updateTaskLabel(Long taskId, Long userId, UpdateTaskLabelRequest request); +} diff --git a/src/main/java/clap/server/domain/model/task/Task.java b/src/main/java/clap/server/domain/model/task/Task.java index fb17bcd0..3b0b2814 100644 --- a/src/main/java/clap/server/domain/model/task/Task.java +++ b/src/main/java/clap/server/domain/model/task/Task.java @@ -67,6 +67,10 @@ public void updateProcessor(Member processor) { this.processor = processor; } + public void updateLabel(Label label) { + this.label = label; + } + public void approveTask(Member reviewer, Member processor, LocalDateTime dueDate, Category category, Label label) { this.reviewer = reviewer; this.processor = processor; From 730e7572c2ec3c10c348a9fa834c04a71d7774de Mon Sep 17 00:00:00 2001 From: andrew Date: Tue, 28 Jan 2025 17:20:29 +0900 Subject: [PATCH 3/4] =?UTF-8?q?CLAP-161=20Feat:=20label=20Error=20Code=20?= =?UTF-8?q?=EC=A0=95=EC=9D=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/exception/code/LabelErrorCode.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/main/java/clap/server/exception/code/LabelErrorCode.java diff --git a/src/main/java/clap/server/exception/code/LabelErrorCode.java b/src/main/java/clap/server/exception/code/LabelErrorCode.java new file mode 100644 index 00000000..1ba89e99 --- /dev/null +++ b/src/main/java/clap/server/exception/code/LabelErrorCode.java @@ -0,0 +1,16 @@ +package clap.server.exception.code; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; + +@Getter +@RequiredArgsConstructor +public enum LabelErrorCode implements BaseErrorCode{ + LABEL_NOT_FOUND(HttpStatus.NOT_FOUND, "LABEL_001", "작업 구분을 찾을 수 없습니다."); + + + private final HttpStatus httpStatus; + private final String customCode; + private final String message; +} From b0f1a023b101c2b5fc967b9baf1469d576f58a1b Mon Sep 17 00:00:00 2001 From: andrew Date: Tue, 28 Jan 2025 17:23:19 +0900 Subject: [PATCH 4/4] =?UTF-8?q?Revert=20"CLAP-159=20Feat:=20=EC=9E=91?= =?UTF-8?q?=EC=97=85=20=EA=B5=AC=EB=B6=84=20=EB=B3=80=EA=B2=BD=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EA=B5=AC=ED=98=84"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 31290b57afa3fafae42340d54f0b156e5bb25340. --- .../web/dto/task/UpdateTaskLabelRequest.java | 6 ---- .../web/task/ManagementTaskController.java | 11 ------- .../application/Task/UpdateTaskService.java | 33 +++++-------------- .../inbound/task/UpdateTaskLabelUsecase.java | 8 ----- .../clap/server/domain/model/task/Task.java | 4 --- 5 files changed, 9 insertions(+), 53 deletions(-) delete mode 100644 src/main/java/clap/server/adapter/inbound/web/dto/task/UpdateTaskLabelRequest.java delete mode 100644 src/main/java/clap/server/application/port/inbound/task/UpdateTaskLabelUsecase.java diff --git a/src/main/java/clap/server/adapter/inbound/web/dto/task/UpdateTaskLabelRequest.java b/src/main/java/clap/server/adapter/inbound/web/dto/task/UpdateTaskLabelRequest.java deleted file mode 100644 index 46e6bab5..00000000 --- a/src/main/java/clap/server/adapter/inbound/web/dto/task/UpdateTaskLabelRequest.java +++ /dev/null @@ -1,6 +0,0 @@ -package clap.server.adapter.inbound.web.dto.task; - -public record UpdateTaskLabelRequest( - Long labelId -) { -} diff --git a/src/main/java/clap/server/adapter/inbound/web/task/ManagementTaskController.java b/src/main/java/clap/server/adapter/inbound/web/task/ManagementTaskController.java index f72aaf0d..ab045008 100644 --- a/src/main/java/clap/server/adapter/inbound/web/task/ManagementTaskController.java +++ b/src/main/java/clap/server/adapter/inbound/web/task/ManagementTaskController.java @@ -31,7 +31,6 @@ public class ManagementTaskController { private final UpdateTaskUsecase updateTaskUsecase; private final UpdateTaskStatusUsecase updateTaskStatusUsecase; private final UpdateTaskProcessorUsecase updateTaskProcessorUsecase; - private final UpdateTaskLabelUsecase updateTaskLabelUsecase; private final ApprovalTaskUsecase approvalTaskUsecase; @Operation(summary = "작업 요청 생성") @@ -77,16 +76,6 @@ public ResponseEntity updateTaskProcessor( return ResponseEntity.ok(updateTaskProcessorUsecase.updateTaskProcessor(taskId, userInfo.getUserId(), updateTaskProcessorRequest)); } - @Operation(summary = "작업 구분 변경") - @Secured({"ROLE_MANAGER"}) - @PatchMapping("/label/{taskId}") - public ResponseEntity updateTaskLabel( - @PathVariable Long taskId, - @AuthenticationPrincipal SecurityUserDetails userInfo, - @RequestBody UpdateTaskLabelRequest updateTaskLabelRequest) { - return ResponseEntity.ok(updateTaskLabelUsecase.updateTaskLabel(taskId, userInfo.getUserId(), updateTaskLabelRequest)); - } - @Operation(summary = "작업 승인") @Secured({"ROLE_MANAGER"}) @PostMapping("/approval/{taskId}") diff --git a/src/main/java/clap/server/application/Task/UpdateTaskService.java b/src/main/java/clap/server/application/Task/UpdateTaskService.java index d8163b6c..372f2cba 100644 --- a/src/main/java/clap/server/application/Task/UpdateTaskService.java +++ b/src/main/java/clap/server/application/Task/UpdateTaskService.java @@ -1,26 +1,29 @@ package clap.server.application.Task; -import clap.server.adapter.inbound.web.dto.task.*; +import clap.server.adapter.inbound.web.dto.task.UpdateTaskRequest; +import clap.server.adapter.inbound.web.dto.task.UpdateTaskResponse; +import clap.server.adapter.inbound.web.dto.task.UpdateTaskStatusRequest; +import clap.server.adapter.inbound.web.dto.task.UpdateTaskProcessorRequest; import clap.server.adapter.outbound.infrastructure.s3.S3UploadAdapter; import clap.server.application.mapper.AttachmentMapper; import clap.server.application.mapper.TaskMapper; import clap.server.application.port.inbound.domain.CategoryService; import clap.server.application.port.inbound.domain.MemberService; import clap.server.application.port.inbound.domain.TaskService; -import clap.server.application.port.inbound.task.UpdateTaskLabelUsecase; import clap.server.application.port.inbound.task.UpdateTaskProcessorUsecase; import clap.server.application.port.inbound.task.UpdateTaskStatusUsecase; import clap.server.application.port.inbound.task.UpdateTaskUsecase; import clap.server.application.port.outbound.task.CommandAttachmentPort; import clap.server.application.port.outbound.task.CommandTaskPort; import clap.server.application.port.outbound.task.LoadAttachmentPort; -import clap.server.application.port.outbound.task.LoadLabelPort; import clap.server.common.annotation.architecture.ApplicationService; import clap.server.domain.model.member.Member; -import clap.server.domain.model.task.*; +import clap.server.domain.model.task.Attachment; +import clap.server.domain.model.task.Category; +import clap.server.domain.model.task.FilePath; +import clap.server.domain.model.task.Task; import clap.server.exception.ApplicationException; -import clap.server.exception.code.LabelErrorCode; import clap.server.exception.code.MemberErrorCode; import clap.server.exception.code.TaskErrorCode; import lombok.RequiredArgsConstructor; @@ -31,20 +34,17 @@ import java.util.List; import java.util.Objects; -import static clap.server.exception.code.MemberErrorCode.ACTIVE_MEMBER_NOT_FOUND; - @ApplicationService @RequiredArgsConstructor @Slf4j -public class UpdateTaskService implements UpdateTaskUsecase, UpdateTaskStatusUsecase, UpdateTaskProcessorUsecase, UpdateTaskLabelUsecase { +public class UpdateTaskService implements UpdateTaskUsecase, UpdateTaskStatusUsecase, UpdateTaskProcessorUsecase { private final MemberService memberService; private final CategoryService categoryService; private final TaskService taskService; private final CommandTaskPort commandTaskPort; private final LoadAttachmentPort loadAttachmentPort; - private final LoadLabelPort loadLabelPort; private final CommandAttachmentPort commandAttachmentPort; private final S3UploadAdapter s3UploadAdapter; @@ -96,21 +96,6 @@ public UpdateTaskResponse updateTaskProcessor(Long taskId, Long userId, UpdateTa // TODO : 알림 생성 로직 및 푸시 알림 로직 추가 } - @Transactional - @Override - public UpdateTaskResponse updateTaskLabel(Long taskId, Long userId, UpdateTaskLabelRequest request) { - Member reviewer = memberService.findActiveMember(userId); - if (!reviewer.isReviewer()) { - throw new ApplicationException(MemberErrorCode.NOT_A_REVIEWER); - } - Task task = taskService.findById(taskId); - Label label = loadLabelPort.findById(request.labelId()).orElseThrow(() -> new ApplicationException(LabelErrorCode.LABEL_NOT_FOUND)); - - task.updateLabel(label); - Task updatetask = commandTaskPort.save(task); - return TaskMapper.toUpdateTaskResponse(updatetask); - } - private void updateAttachments(List attachmentIdsToDelete, List files, Task task) { List attachmentsToDelete = validateAndGetAttachments(attachmentIdsToDelete, task); attachmentsToDelete.forEach(Attachment::softDelete); diff --git a/src/main/java/clap/server/application/port/inbound/task/UpdateTaskLabelUsecase.java b/src/main/java/clap/server/application/port/inbound/task/UpdateTaskLabelUsecase.java deleted file mode 100644 index be5c66dc..00000000 --- a/src/main/java/clap/server/application/port/inbound/task/UpdateTaskLabelUsecase.java +++ /dev/null @@ -1,8 +0,0 @@ -package clap.server.application.port.inbound.task; - -import clap.server.adapter.inbound.web.dto.task.UpdateTaskLabelRequest; -import clap.server.adapter.inbound.web.dto.task.UpdateTaskResponse; - -public interface UpdateTaskLabelUsecase { - UpdateTaskResponse updateTaskLabel(Long taskId, Long userId, UpdateTaskLabelRequest request); -} diff --git a/src/main/java/clap/server/domain/model/task/Task.java b/src/main/java/clap/server/domain/model/task/Task.java index 3b0b2814..fb17bcd0 100644 --- a/src/main/java/clap/server/domain/model/task/Task.java +++ b/src/main/java/clap/server/domain/model/task/Task.java @@ -67,10 +67,6 @@ public void updateProcessor(Member processor) { this.processor = processor; } - public void updateLabel(Label label) { - this.label = label; - } - public void approveTask(Member reviewer, Member processor, LocalDateTime dueDate, Category category, Label label) { this.reviewer = reviewer; this.processor = processor;