Skip to content

Commit f74f68f

Browse files
committed
CLAP-165 Fix: Task 관련 기능 중 권한 별 분류
1 parent c88faf6 commit f74f68f

File tree

2 files changed

+73
-46
lines changed

2 files changed

+73
-46
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package clap.server.adapter.inbound.web.task;
2+
3+
import clap.server.adapter.inbound.security.SecurityUserDetails;
4+
import clap.server.adapter.inbound.web.dto.task.*;
5+
import clap.server.application.port.inbound.task.ApprovalTaskUsecase;
6+
import clap.server.application.port.inbound.task.UpdateTaskLabelUsecase;
7+
import clap.server.application.port.inbound.task.UpdateTaskProcessorUsecase;
8+
import clap.server.application.port.inbound.task.UpdateTaskStatusUsecase;
9+
import clap.server.common.annotation.architecture.WebAdapter;
10+
import io.swagger.v3.oas.annotations.Operation;
11+
import io.swagger.v3.oas.annotations.tags.Tag;
12+
import jakarta.validation.Valid;
13+
import jakarta.validation.constraints.NotNull;
14+
import lombok.RequiredArgsConstructor;
15+
import org.springframework.http.ResponseEntity;
16+
import org.springframework.security.access.annotation.Secured;
17+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
18+
import org.springframework.web.bind.annotation.*;
19+
20+
21+
@Tag(name = "02. Task[검토자]")
22+
@WebAdapter
23+
@RestController
24+
@RequiredArgsConstructor
25+
@RequestMapping("/api/tasks")
26+
public class ChangeTaskController {
27+
28+
private final UpdateTaskStatusUsecase updateTaskStatusUsecase;
29+
private final UpdateTaskProcessorUsecase updateTaskProcessorUsecase;
30+
private final UpdateTaskLabelUsecase updateTaskLabelUsecase;
31+
private final ApprovalTaskUsecase approvalTaskUsecase;
32+
33+
@Operation(summary = "작업 상태 변경")
34+
@Secured({"ROLE_MANGER"})
35+
@PatchMapping("/state/{taskId}")
36+
public ResponseEntity<UpdateTaskResponse> updateTaskState(
37+
@PathVariable @NotNull Long taskId,
38+
@AuthenticationPrincipal SecurityUserDetails userInfo,
39+
@RequestBody UpdateTaskStatusRequest updateTaskStatusRequest) {
40+
41+
return ResponseEntity.ok(updateTaskStatusUsecase.updateTaskState(userInfo.getUserId(), taskId, updateTaskStatusRequest));
42+
}
43+
44+
@Operation(summary = "작업 처리자 변경")
45+
@Secured({"ROLE_MANAGER"})
46+
@PatchMapping("/processor/{taskId}")
47+
public ResponseEntity<UpdateTaskResponse> updateTaskProcessor(
48+
@PathVariable Long taskId,
49+
@AuthenticationPrincipal SecurityUserDetails userInfo,
50+
@RequestBody UpdateTaskProcessorRequest updateTaskProcessorRequest) {
51+
return ResponseEntity.ok(updateTaskProcessorUsecase.updateTaskProcessor(taskId, userInfo.getUserId(), updateTaskProcessorRequest));
52+
}
53+
54+
@Operation(summary = "작업 구분 변경")
55+
@Secured({"ROLE_MANAGER"})
56+
@PatchMapping("/label/{taskId}")
57+
public ResponseEntity<UpdateTaskResponse> updateTaskLabel(
58+
@PathVariable Long taskId,
59+
@AuthenticationPrincipal SecurityUserDetails userInfo,
60+
@RequestBody UpdateTaskLabelRequest updateTaskLabelRequest) {
61+
return ResponseEntity.ok(updateTaskLabelUsecase.updateTaskLabel(taskId, userInfo.getUserId(), updateTaskLabelRequest));
62+
}
63+
64+
@Operation(summary = "작업 승인")
65+
@Secured({"ROLE_MANAGER"})
66+
@PostMapping("/approval/{taskId}")
67+
public ResponseEntity<ApprovalTaskResponse> approvalTask(
68+
@RequestBody @Valid ApprovalTaskRequest approvalTaskRequest,
69+
@PathVariable Long taskId,
70+
@AuthenticationPrincipal SecurityUserDetails userInfo){
71+
return ResponseEntity.ok(approvalTaskUsecase.approvalTaskByReviewer(userInfo.getUserId(), taskId, approvalTaskRequest));
72+
}
73+
}

src/main/java/clap/server/adapter/inbound/web/task/ManagementTaskController.java

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import clap.server.adapter.inbound.security.SecurityUserDetails;
44
import clap.server.adapter.inbound.web.dto.task.*;
5-
import clap.server.adapter.inbound.web.dto.task.UpdateTaskProcessorRequest;
65
import clap.server.application.port.inbound.task.*;
76
import clap.server.common.annotation.architecture.WebAdapter;
87
import io.swagger.v3.oas.annotations.Operation;
@@ -29,10 +28,6 @@ public class ManagementTaskController {
2928

3029
private final CreateTaskUsecase createTaskUsecase;
3130
private final UpdateTaskUsecase updateTaskUsecase;
32-
private final UpdateTaskStatusUsecase updateTaskStatusUsecase;
33-
private final UpdateTaskProcessorUsecase updateTaskProcessorUsecase;
34-
private final UpdateTaskLabelUsecase updateTaskLabelUsecase;
35-
private final ApprovalTaskUsecase approvalTaskUsecase;
3631

3732
@Operation(summary = "작업 요청 생성")
3833
@PostMapping(consumes = {MediaType.MULTIPART_FORM_DATA_VALUE, MediaType.APPLICATION_JSON_VALUE})
@@ -55,45 +50,4 @@ public ResponseEntity<UpdateTaskResponse> updateTask(
5550
@AuthenticationPrincipal SecurityUserDetails userInfo){
5651
return ResponseEntity.ok(updateTaskUsecase.updateTask(userInfo.getUserId(), taskId, updateTaskRequest, attachments));
5752
}
58-
59-
@Operation(summary = "작업 상태 변경")
60-
@Secured({"ROLE_MANGER"})
61-
@PatchMapping("/state/{taskId}")
62-
public ResponseEntity<UpdateTaskResponse> updateTaskState(
63-
@PathVariable @NotNull Long taskId,
64-
@AuthenticationPrincipal SecurityUserDetails userInfo,
65-
@RequestBody UpdateTaskStatusRequest updateTaskStatusRequest) {
66-
67-
return ResponseEntity.ok(updateTaskStatusUsecase.updateTaskState(userInfo.getUserId(), taskId, updateTaskStatusRequest));
68-
}
69-
70-
@Operation(summary = "작업 처리자 변경")
71-
@Secured({"ROLE_MANAGER"})
72-
@PatchMapping("/processor/{taskId}")
73-
public ResponseEntity<UpdateTaskResponse> updateTaskProcessor(
74-
@PathVariable Long taskId,
75-
@AuthenticationPrincipal SecurityUserDetails userInfo,
76-
@RequestBody UpdateTaskProcessorRequest updateTaskProcessorRequest) {
77-
return ResponseEntity.ok(updateTaskProcessorUsecase.updateTaskProcessor(taskId, userInfo.getUserId(), updateTaskProcessorRequest));
78-
}
79-
80-
@Operation(summary = "작업 구분 변경")
81-
@Secured({"ROLE_MANAGER"})
82-
@PatchMapping("/label/{taskId}")
83-
public ResponseEntity<UpdateTaskResponse> updateTaskLabel(
84-
@PathVariable Long taskId,
85-
@AuthenticationPrincipal SecurityUserDetails userInfo,
86-
@RequestBody UpdateTaskLabelRequest updateTaskLabelRequest) {
87-
return ResponseEntity.ok(updateTaskLabelUsecase.updateTaskLabel(taskId, userInfo.getUserId(), updateTaskLabelRequest));
88-
}
89-
90-
@Operation(summary = "작업 승인")
91-
@Secured({"ROLE_MANAGER"})
92-
@PostMapping("/approval/{taskId}")
93-
public ResponseEntity<ApprovalTaskResponse> approvalTask(
94-
@RequestBody @Valid ApprovalTaskRequest approvalTaskRequest,
95-
@PathVariable Long taskId,
96-
@AuthenticationPrincipal SecurityUserDetails userInfo){
97-
return ResponseEntity.ok(approvalTaskUsecase.approvalTaskByReviewer(userInfo.getUserId(), taskId, approvalTaskRequest));
98-
}
9953
}

0 commit comments

Comments
 (0)