Skip to content

Commit a906c9b

Browse files
authored
doc: Task 컨트롤러 api 문서 작성 (#60)
1 parent 53727eb commit a906c9b

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

back/src/main/java/com/back/domain/roadmap/task/controller/TaskController.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.back.global.exception.ServiceException;
99
import com.back.global.rq.Rq;
1010
import com.back.global.rsData.RsData;
11+
import io.swagger.v3.oas.annotations.Operation;
1112
import jakarta.validation.Valid;
1213
import lombok.RequiredArgsConstructor;
1314
import org.springframework.data.domain.Page;
@@ -20,13 +21,13 @@
2021
import java.util.List;
2122

2223
@RestController
23-
@RequestMapping("/api/tasks")
24+
@RequestMapping("/tasks")
2425
@RequiredArgsConstructor
2526
public class TaskController {
2627
private final TaskService taskService;
2728
private final Rq rq;
2829

29-
// 검색 api
30+
@Operation(summary = "키워드로 task 검색", description = "사용자가 입력한 키워드로 Task를 검색합니다.")
3031
@GetMapping("/search")
3132
public RsData<List<TaskDto>> searchTasks(@RequestParam String keyword) {
3233
// 입력값 검증
@@ -51,6 +52,7 @@ public RsData<List<TaskDto>> searchTasks(@RequestParam String keyword) {
5152
}
5253

5354
// 사용자가 새로운 기술 제안 (pending alias 생성)
55+
@Operation(summary = "사용자가 새로운 Task 제안", description = "사용자가 입력한 Task 이름으로 pending 상태의(표준 Task와 연결되지 않은) TaskAlias를 생성합니다.")
5456
@PostMapping("/aliases/pending")
5557
public RsData<CreatePendingAliasResponse> createPendingAlias(@Valid @RequestBody CreatePendingAliasRequest request) {
5658
TaskAlias pendingAlias = taskService.createPendingAlias(request.taskName().trim());
@@ -65,6 +67,7 @@ public RsData<CreatePendingAliasResponse> createPendingAlias(@Valid @RequestBody
6567

6668
//=== 관리자용 API ===
6769
// 나중에 CORS 설정
70+
@Operation(summary = "pending 상태의 TaskAlias 목록 조회", description = "관리자가 pending 상태의 (아직 매칭되지 않은) TaskAlias 목록을 페이징하여 조회합니다.")
6871
@GetMapping("/aliases/pending")
6972
public RsData<Page<TaskAliasDto>> getPendingTaskAliases(
7073
@PageableDefault(size = 10, sort = "createdDate", direction = Sort.Direction.DESC) Pageable pageable
@@ -81,6 +84,7 @@ public RsData<Page<TaskAliasDto>> getPendingTaskAliases(
8184
}
8285

8386
// Pending alias를 기존 Task와 연결
87+
@Operation(summary = "pending 상태의 alias를 기존 표준 Task와 연결", description = "관리자가 pending 상태의 (아직 매칭되지 않은) TaskAlias를 기존에 존재하는 표준 Task와 연결합니다.")
8488
@PutMapping("/aliases/pending/{aliasId}/link")
8589
public RsData<TaskAliasDetailDto> linkPendingAlias(
8690
@PathVariable Long aliasId,
@@ -98,6 +102,7 @@ public RsData<TaskAliasDetailDto> linkPendingAlias(
98102
}
99103

100104
// Pending alias를 새로운 Task로 등록(생성)
105+
@Operation(summary = "pending 상태의 alias를 새로운 표준 Task로 등록", description = "관리자가 pending 상태의 (아직 매칭되지 않은) TaskAlias를 표준 Task로 생성하고, 해당 alias를 새 Task와 연결합니다.")
101106
@PostMapping("/aliases/pending/{aliasId}")
102107
public RsData<TaskDto> createTaskFromPending(
103108
@PathVariable Long aliasId
@@ -113,6 +118,7 @@ public RsData<TaskDto> createTaskFromPending(
113118
);
114119
}
115120

121+
@Operation(summary = "pending 상태의 alias 삭제", description = "관리자가 pending 상태의 (아직 매칭되지 않은) TaskAlias를 삭제합니다. 더 이상 필요하지 않은 제안이거나, 부적절한 제안인 경우에 사용됩니다.")
116122
@DeleteMapping("/aliases/pending/{aliasId}")
117123
public RsData<Void> deletePendingAlias(@PathVariable Long aliasId) {
118124
validateAdminRole();

0 commit comments

Comments
 (0)