diff --git a/src/main/java/clap/server/adapter/inbound/web/task/ChangeTaskController.java b/src/main/java/clap/server/adapter/inbound/web/task/ChangeTaskController.java index 9190f9e7..3ca5a0f2 100644 --- a/src/main/java/clap/server/adapter/inbound/web/task/ChangeTaskController.java +++ b/src/main/java/clap/server/adapter/inbound/web/task/ChangeTaskController.java @@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.*; -@Tag(name = "02. Task[검토자]") +@Tag(name = "02. Task [검토자]") @WebAdapter @RestController @RequiredArgsConstructor diff --git a/src/main/java/clap/server/adapter/inbound/web/task/FindTaskController.java b/src/main/java/clap/server/adapter/inbound/web/task/FindTaskController.java index 873e7ac9..8c21d191 100644 --- a/src/main/java/clap/server/adapter/inbound/web/task/FindTaskController.java +++ b/src/main/java/clap/server/adapter/inbound/web/task/FindTaskController.java @@ -1,6 +1,7 @@ package clap.server.adapter.inbound.web.task; import clap.server.adapter.inbound.security.SecurityUserDetails; +import clap.server.adapter.inbound.web.dto.common.PageResponse; import clap.server.adapter.inbound.web.dto.task.*; import clap.server.application.port.inbound.task.FindTaskDetailsUsecase; import clap.server.application.port.inbound.task.FindTaskListUsecase; @@ -29,7 +30,7 @@ public class FindTaskController { @Operation(summary = "사용자 요청 작업 목록 조회") @Secured({"ROLE_USER", "ROLE_MANAGER"}) @GetMapping("/requests") - public ResponseEntity> findTasksRequestedByUser( + public ResponseEntity> findTasksRequestedByUser( @RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "20") int pageSize, @ModelAttribute FilterTaskListRequest filterTaskListRequest, @@ -50,7 +51,7 @@ public ResponseEntity findRequestedTaskDetails( @Operation(summary = "할당된 내 작업 목록 조회") @Secured({"ROLE_MANAGER"}) @GetMapping("/assigned") - public ResponseEntity> findTasksAssignedByManager( + public ResponseEntity> findTasksAssignedByManager( @RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "20") int pageSize, @ModelAttribute FilterTaskListRequest filterTaskListRequest, @@ -62,7 +63,7 @@ public ResponseEntity> findTasksAssignedByM @Operation(summary = "승인 대기 중인 요청 목록 조회") @Secured({"ROLE_MANAGER"}) @GetMapping("/requests/pending") - public ResponseEntity> findPendingApprovalTasks( + public ResponseEntity> findPendingApprovalTasks( @RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "20") int pageSize, @ModelAttribute FilterTaskListRequest filterTaskListRequest, @@ -74,7 +75,7 @@ public ResponseEntity> findPendingApprovalTa @Operation(summary = "전체 작업 목록 조회") @Secured("ROLE_MANAGER") @GetMapping - public ResponseEntity> findAllTasks( + public ResponseEntity> findAllTasks( @RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "20") int pageSize, @ModelAttribute FilterTaskListRequest filterTaskListRequest, diff --git a/src/main/java/clap/server/adapter/outbound/persistense/repository/task/TaskCustomRepositoryImpl.java b/src/main/java/clap/server/adapter/outbound/persistense/repository/task/TaskCustomRepositoryImpl.java index f02ddd55..72ca8827 100644 --- a/src/main/java/clap/server/adapter/outbound/persistense/repository/task/TaskCustomRepositoryImpl.java +++ b/src/main/java/clap/server/adapter/outbound/persistense/repository/task/TaskCustomRepositoryImpl.java @@ -26,6 +26,7 @@ public class TaskCustomRepositoryImpl implements TaskCustomRepository { private final JPAQueryFactory queryFactory; + @Override public Page findTasksRequestedByUser(Long requesterId, Pageable pageable, FilterTaskListRequest filterTaskListRequest) { BooleanBuilder builder = createFilter(filterTaskListRequest); @@ -39,13 +40,13 @@ public Page findTasksRequestedByUser(Long requesterId, Pageable page @Override public Page findTasksAssignedByManager(Long processorId, Pageable pageable, FilterTaskListRequest filterTaskListRequest) { - BooleanBuilder whereClause = createFilter(filterTaskListRequest); + BooleanBuilder builder = createFilter(filterTaskListRequest); if (!filterTaskListRequest.nickName().isEmpty()) { - whereClause.and(taskEntity.requester.nickname.eq(filterTaskListRequest.nickName())); + builder.and(taskEntity.requester.nickname.eq(filterTaskListRequest.nickName())); } - whereClause.and(taskEntity.processor.memberId.eq(processorId)); + builder.and(taskEntity.processor.memberId.eq(processorId)); - return getTasksPage(pageable, whereClause, filterTaskListRequest.orderRequest().sortBy(), filterTaskListRequest.orderRequest().sortDirection()); + return getTasksPage(pageable, builder, filterTaskListRequest.orderRequest().sortBy(), filterTaskListRequest.orderRequest().sortDirection()); } @Override diff --git a/src/main/java/clap/server/application/port/inbound/task/FindTaskListUsecase.java b/src/main/java/clap/server/application/port/inbound/task/FindTaskListUsecase.java index 6700b5bc..3d4ff05b 100644 --- a/src/main/java/clap/server/application/port/inbound/task/FindTaskListUsecase.java +++ b/src/main/java/clap/server/application/port/inbound/task/FindTaskListUsecase.java @@ -1,15 +1,16 @@ package clap.server.application.port.inbound.task; +import clap.server.adapter.inbound.web.dto.common.PageResponse; import clap.server.adapter.inbound.web.dto.task.*; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; public interface FindTaskListUsecase { - Page findTasksRequestedByUser(Long memberId, Pageable pageable, FilterTaskListRequest findTaskListRequest); + PageResponse findTasksRequestedByUser(Long memberId, Pageable pageable, FilterTaskListRequest findTaskListRequest); - Page findTasksAssignedByManager(Long memberId, Pageable pageable, FilterTaskListRequest findTaskListRequest); + PageResponse findTasksAssignedByManager(Long memberId, Pageable pageable, FilterTaskListRequest findTaskListRequest); - Page findPendingApprovalTasks(Long userId, Pageable pageable, FilterTaskListRequest filterTaskListRequest); + PageResponse findPendingApprovalTasks(Long userId, Pageable pageable, FilterTaskListRequest filterTaskListRequest); - Page findAllTasks(Long userId, Pageable pageable, FilterTaskListRequest filterTaskListRequest); + PageResponse findAllTasks(Long userId, Pageable pageable, FilterTaskListRequest filterTaskListRequest); } diff --git a/src/main/java/clap/server/application/service/task/FindTaskListService.java b/src/main/java/clap/server/application/service/task/FindTaskListService.java index 4fec9de2..49da4e92 100644 --- a/src/main/java/clap/server/application/service/task/FindTaskListService.java +++ b/src/main/java/clap/server/application/service/task/FindTaskListService.java @@ -1,5 +1,6 @@ package clap.server.application.service.task; +import clap.server.adapter.inbound.web.dto.common.PageResponse; import clap.server.adapter.inbound.web.dto.task.*; import clap.server.application.port.inbound.domain.MemberService; @@ -27,26 +28,30 @@ public class FindTaskListService implements FindTaskListUsecase { @Override - public Page findTasksRequestedByUser(Long requesterId, Pageable pageable, FilterTaskListRequest findTaskListRequest) { + public PageResponse findTasksRequestedByUser(Long requesterId, Pageable pageable, FilterTaskListRequest findTaskListRequest) { Member requester = memberService.findActiveMember(requesterId); - return loadTaskPort.findTasksRequestedByUser(requester.getMemberId(), pageable, findTaskListRequest); + Page filterRequestedTasksResponses = loadTaskPort.findTasksRequestedByUser(requester.getMemberId(), pageable, findTaskListRequest); + return PageResponse.from(filterRequestedTasksResponses); } @Override - public Page findTasksAssignedByManager(Long processorId, Pageable pageable, FilterTaskListRequest findTaskListRequest) { + public PageResponse findTasksAssignedByManager(Long processorId, Pageable pageable, FilterTaskListRequest findTaskListRequest) { Member processor = memberService.findActiveMember(processorId); - return loadTaskPort.findTasksAssignedByManager(processor.getMemberId(), pageable, findTaskListRequest); + Page filterAssignedTaskListResponses = loadTaskPort.findTasksAssignedByManager(processor.getMemberId(), pageable, findTaskListRequest); + return PageResponse.from(filterAssignedTaskListResponses); } @Override - public Page findPendingApprovalTasks(Long managerId, Pageable pageable, FilterTaskListRequest filterTaskListRequest) { + public PageResponse findPendingApprovalTasks(Long managerId, Pageable pageable, FilterTaskListRequest filterTaskListRequest) { memberService.findActiveMember(managerId); - return loadTaskPort.findPendingApprovalTasks(pageable, filterTaskListRequest); + Page filterPendingApprovalResponses = loadTaskPort.findPendingApprovalTasks(pageable, filterTaskListRequest); + return PageResponse.from(filterPendingApprovalResponses); } @Override - public Page findAllTasks(Long managerId, Pageable pageable, FilterTaskListRequest filterTaskListRequest) { + public PageResponse findAllTasks(Long managerId, Pageable pageable, FilterTaskListRequest filterTaskListRequest) { memberService.findActiveMember(managerId); - return loadTaskPort.findAllTasks(pageable, filterTaskListRequest); + Page filterAllTasksResponses = loadTaskPort.findAllTasks(pageable, filterTaskListRequest); + return PageResponse.from(filterAllTasksResponses); } } diff --git a/src/test/java/clap/server/application/service/task/FindTaskListServiceTest.java b/src/test/java/clap/server/application/service/task/FindTaskListServiceTest.java index 90142205..9be6ae01 100644 --- a/src/test/java/clap/server/application/service/task/FindTaskListServiceTest.java +++ b/src/test/java/clap/server/application/service/task/FindTaskListServiceTest.java @@ -1,5 +1,6 @@ package clap.server.application.service.task; +import clap.server.adapter.inbound.web.dto.common.PageResponse; import clap.server.adapter.inbound.web.dto.task.FilterTaskListRequest; import clap.server.adapter.inbound.web.dto.task.OrderTaskRequest; import clap.server.adapter.inbound.web.dto.task.FilterPendingApprovalResponse; @@ -66,17 +67,17 @@ void findPendingApprovalTasks_ReturnFilteredTasks() { .thenReturn(expectedResponse); // when - Page result = findTaskListService.findPendingApprovalTasks(managerId, pageable, filterTaskListRequest); + PageResponse result = findTaskListService.findPendingApprovalTasks(managerId, pageable, filterTaskListRequest); // then assertThat(result).isNotNull(); - assertThat(result.getTotalElements()).isEqualTo(2); + assertThat(result.totalElements()).isEqualTo(2); - assertThat(result.getContent()).hasSize(2) + assertThat(result.content()).hasSize(2) .extracting(FilterPendingApprovalResponse::taskId) .containsExactly(1L, 2L); - assertThat(result.getContent().get(0)) + assertThat(result.content().get(0)) .extracting(FilterPendingApprovalResponse::taskId, FilterPendingApprovalResponse::taskCode, FilterPendingApprovalResponse::requestedAt, FilterPendingApprovalResponse::mainCategoryName, FilterPendingApprovalResponse::categoryName, FilterPendingApprovalResponse::title, @@ -84,7 +85,7 @@ void findPendingApprovalTasks_ReturnFilteredTasks() { .containsExactly(1L, "TC001", LocalDateTime.of(2025, 1, 24, 12, 30), "메인 카테고리", "서브 카테고리", "작업 제목", "atom.park"); - assertThat(result.getContent().get(1)) + assertThat(result.content().get(1)) .extracting(FilterPendingApprovalResponse::taskId, FilterPendingApprovalResponse::taskCode, FilterPendingApprovalResponse::requestedAt, FilterPendingApprovalResponse::mainCategoryName, FilterPendingApprovalResponse::categoryName, FilterPendingApprovalResponse::title,