|
2 | 2 |
|
3 | 3 | import clap.server.adapter.inbound.web.dto.task.UpdateTaskRequest; |
4 | 4 | import clap.server.adapter.inbound.web.dto.task.UpdateTaskResponse; |
5 | | -import clap.server.adapter.inbound.web.dto.task.UpdateTaskStateRequest; |
| 5 | +import clap.server.adapter.inbound.web.dto.task.UpdateTaskStatusRequest; |
| 6 | +import clap.server.adapter.inbound.web.dto.task.UpdateTaskProcessorRequest; |
6 | 7 | import clap.server.adapter.outbound.infrastructure.s3.S3UploadAdapter; |
7 | | -import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus; |
8 | 8 | import clap.server.application.mapper.AttachmentMapper; |
9 | 9 | import clap.server.application.mapper.TaskMapper; |
10 | 10 | import clap.server.application.port.inbound.domain.CategoryService; |
11 | 11 | import clap.server.application.port.inbound.domain.MemberService; |
12 | 12 | import clap.server.application.port.inbound.domain.TaskService; |
| 13 | +import clap.server.application.port.inbound.task.UpdateTaskProcessorUsecase; |
13 | 14 | import clap.server.application.port.inbound.task.UpdateTaskStatusUsecase; |
14 | 15 | import clap.server.application.port.inbound.task.UpdateTaskUsecase; |
15 | 16 | import clap.server.application.port.outbound.task.CommandAttachmentPort; |
|
23 | 24 | import clap.server.domain.model.task.Task; |
24 | 25 |
|
25 | 26 | import clap.server.exception.ApplicationException; |
| 27 | +import clap.server.exception.code.MemberErrorCode; |
26 | 28 | import clap.server.exception.code.TaskErrorCode; |
27 | 29 | import lombok.RequiredArgsConstructor; |
28 | 30 | import lombok.extern.slf4j.Slf4j; |
|
36 | 38 | @ApplicationService |
37 | 39 | @RequiredArgsConstructor |
38 | 40 | @Slf4j |
39 | | -public class UpdateTaskService implements UpdateTaskUsecase, UpdateTaskStatusUsecase { |
| 41 | +public class UpdateTaskService implements UpdateTaskUsecase, UpdateTaskStatusUsecase, UpdateTaskProcessorUsecase { |
40 | 42 |
|
41 | 43 | private final MemberService memberService; |
42 | 44 | private final CategoryService categoryService; |
@@ -68,10 +70,26 @@ public UpdateTaskResponse updateTask(Long requesterId, Long taskId, UpdateTaskRe |
68 | 70 |
|
69 | 71 | @Override |
70 | 72 | @Transactional |
71 | | - public UpdateTaskResponse updateTaskState(Long memberId, Long taskId, UpdateTaskStateRequest updateTaskStateRequest) { |
| 73 | + public UpdateTaskResponse updateTaskState(Long memberId, Long taskId, UpdateTaskStatusRequest updateTaskStatusRequest) { |
72 | 74 | memberService.findActiveMember(memberId); |
73 | 75 | Task task = taskService.findById(taskId); |
74 | | - task.updateTaskStatus(updateTaskStateRequest.taskStatus()); |
| 76 | + task.updateTaskStatus(updateTaskStatusRequest.taskStatus()); |
| 77 | + Task updateTask = commandTaskPort.save(task); |
| 78 | + return TaskMapper.toUpdateTaskResponse(updateTask); |
| 79 | + |
| 80 | + // TODO : 알림 생성 로직 및 푸시 알림 로직 추가 |
| 81 | + } |
| 82 | + |
| 83 | + @Transactional |
| 84 | + @Override |
| 85 | + public UpdateTaskResponse updateTaskProcessor(Long taskId, Long userId, UpdateTaskProcessorRequest request) { |
| 86 | + Member reviewer = memberService.findActiveMember(userId); |
| 87 | + Member processor = memberService.findById(request.processorId()); |
| 88 | + if (!reviewer.isReviewer()) { |
| 89 | + throw new ApplicationException(MemberErrorCode.NOT_A_REVIEWER); |
| 90 | + } |
| 91 | + Task task = taskService.findById(taskId); |
| 92 | + task.updateProcessor(processor); |
75 | 93 | Task updateTask = commandTaskPort.save(task); |
76 | 94 | return TaskMapper.toUpdateTaskResponse(updateTask); |
77 | 95 |
|
|
0 commit comments