Skip to content

Commit 9b73ae5

Browse files
committed
CLAP-59 Fix: FilterTaskRequest로 추상화
1 parent 576e12c commit 9b73ae5

File tree

11 files changed

+80
-26
lines changed

11 files changed

+80
-26
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package clap.server.adapter.inbound.web.dto.task;
2+
3+
import io.swagger.v3.oas.annotations.media.Schema;
4+
import jakarta.validation.constraints.NotNull;
5+
6+
import java.util.List;
7+
8+
public record FilterPendingApprovalRequest(
9+
@Schema(description = "검색 기간 (단위: 시간)", example = "1, 24, 168, 730, 2190 (1시간, 24시간, 1주일, 1개월, 3개월)")
10+
Integer term,
11+
12+
@Schema(description = "카테고리 ID 목록", example = "[1, 2, 3]")
13+
@NotNull
14+
List<Long> categoryIds,
15+
16+
@Schema(description = "메인 카테고리 ID 목록", example = "[10, 20, 30]")
17+
@NotNull
18+
List<Long> mainCategoryIds,
19+
20+
@Schema(description = "작업 제목", example = "작업 제목")
21+
@NotNull
22+
String title,
23+
24+
@Schema(description = "사용자 닉네임", example = "atom.park")
25+
@NotNull
26+
String nickName,
27+
28+
@Schema(description = "정렬 기준", implementation = OrderRequest.class)
29+
@NotNull
30+
OrderRequest orderRequest
31+
) implements FilterTaskRequest {
32+
}

src/main/java/clap/server/adapter/inbound/web/dto/task/FilterTaskListRequest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,6 @@ public record FilterTaskListRequest(
3535
@Schema(description = "정렬 기준", implementation = OrderRequest.class)
3636
@NotNull
3737
OrderRequest orderRequest
38-
) {
38+
39+
) implements FilterTaskRequest{
3940
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package clap.server.adapter.inbound.web.dto.task;
2+
3+
import java.util.List;
4+
5+
public interface FilterTaskRequest {
6+
Integer term();
7+
List<Long> categoryIds();
8+
List<Long> mainCategoryIds();
9+
String title();
10+
String nickName();
11+
OrderRequest orderRequest();
12+
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ public ResponseEntity<FindTaskDetailsResponse> findRequestedTaskDetails(
5151
public ResponseEntity<Page<FilterPendingApprovalResponse>> findPendingApprovalTasks(
5252
@RequestParam(defaultValue = "0") int page,
5353
@RequestParam(defaultValue = "20") int pageSize,
54-
@ModelAttribute FilterTaskListRequest filterTaskListRequest,
54+
@ModelAttribute FilterPendingApprovalRequest pendingApprovalRequest,
5555
@AuthenticationPrincipal SecurityUserDetails userInfo){
5656
Pageable pageable = PageRequest.of(page, pageSize);
57-
return ResponseEntity.ok(taskListUsecase.findPendingApprovalTasks(userInfo.getUserId(), pageable, filterTaskListRequest));
57+
return ResponseEntity.ok(taskListUsecase.findPendingApprovalTasks(userInfo.getUserId(), pageable, pendingApprovalRequest));
5858
}
5959
}

src/main/java/clap/server/adapter/outbound/persistense/TaskPersistenceAdapter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package clap.server.adapter.outbound.persistense;
22

3+
import clap.server.adapter.inbound.web.dto.task.FilterPendingApprovalRequest;
34
import clap.server.adapter.inbound.web.dto.task.FilterTaskListRequest;
45
import clap.server.adapter.inbound.web.dto.task.FilterTaskListResponse;
56
import clap.server.adapter.inbound.web.dto.task.FilterPendingApprovalResponse;
@@ -46,8 +47,8 @@ public Page<FilterTaskListResponse> findTasksRequestedByUser(Long requesterId, P
4647
}
4748

4849
@Override
49-
public Page<FilterPendingApprovalResponse> findPendingApprovalTasks(Pageable pageable, FilterTaskListRequest filterTaskListRequest) {
50-
Page<Task> taskList = taskRepository.findPendingApprovalTasks(pageable, filterTaskListRequest)
50+
public Page<FilterPendingApprovalResponse> findPendingApprovalTasks(Pageable pageable, FilterPendingApprovalRequest pendingApprovalRequest) {
51+
Page<Task> taskList = taskRepository.findPendingApprovalTasks(pageable, pendingApprovalRequest)
5152
.map(taskPersistenceMapper::toDomain);
5253
return taskList.map(TaskMapper::toFilterPendingApprovalTasksResponse);
5354
}
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package clap.server.adapter.outbound.persistense.repository.task;
22

3+
import clap.server.adapter.inbound.web.dto.task.FilterPendingApprovalRequest;
34
import clap.server.adapter.inbound.web.dto.task.FilterTaskListRequest;
5+
import clap.server.adapter.inbound.web.dto.task.FilterTaskRequest;
46
import clap.server.adapter.outbound.persistense.entity.task.TaskEntity;
57
import org.springframework.data.domain.Page;
68
import org.springframework.data.domain.Pageable;
79

810
public interface TaskCustomRepository {
911

10-
Page<TaskEntity> findTasksRequestedByUser(Long requesterId, Pageable pageable, FilterTaskListRequest findTaskListRequest);
11-
Page<TaskEntity> findPendingApprovalTasks(Pageable pageable, FilterTaskListRequest findTaskListRequest);
12+
Page<TaskEntity> findTasksRequestedByUser(Long requesterId, Pageable pageable, FilterTaskRequest filterTaskListRequest);
13+
Page<TaskEntity> findPendingApprovalTasks(Pageable pageable, FilterTaskRequest filterPendingApprovalRequest);
1214
}

src/main/java/clap/server/adapter/outbound/persistense/repository/task/TaskCustomRepositoryImpl.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package clap.server.adapter.outbound.persistense.repository.task;
22

3+
import clap.server.adapter.inbound.web.dto.task.FilterPendingApprovalRequest;
34
import clap.server.adapter.inbound.web.dto.task.FilterTaskListRequest;
5+
import clap.server.adapter.inbound.web.dto.task.FilterTaskRequest;
46
import clap.server.adapter.outbound.persistense.entity.task.TaskEntity;
57
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus;
68
import com.querydsl.core.BooleanBuilder;
@@ -26,20 +28,20 @@ public class TaskCustomRepositoryImpl implements TaskCustomRepository {
2628
private final JPAQueryFactory queryFactory;
2729

2830
@Override
29-
public Page<TaskEntity> findTasksRequestedByUser(Long requesterId, Pageable pageable, FilterTaskListRequest findTaskListRequest) {
30-
BooleanBuilder whereClause = createFilter(findTaskListRequest);
31+
public Page<TaskEntity> findTasksRequestedByUser(Long requesterId, Pageable pageable, FilterTaskRequest filterTaskListRequest) {
32+
BooleanBuilder whereClause = createFilter(filterTaskListRequest);
3133
whereClause.and(taskEntity.requester.memberId.eq(requesterId));
32-
return getTasksPage(pageable, whereClause, findTaskListRequest.orderRequest().sortBy(), findTaskListRequest.orderRequest().sortDirection());
34+
return getTasksPage(pageable, whereClause, filterTaskListRequest.orderRequest().sortBy(), filterTaskListRequest.orderRequest().sortDirection());
3335
}
3436

3537
@Override
36-
public Page<TaskEntity> findPendingApprovalTasks(Pageable pageable, FilterTaskListRequest filterTaskListRequest) {
37-
BooleanBuilder whereClause = createFilter(filterTaskListRequest);
38+
public Page<TaskEntity> findPendingApprovalTasks(Pageable pageable, FilterTaskRequest pendingApprovalRequest) {
39+
BooleanBuilder whereClause = createFilter(pendingApprovalRequest);
3840
whereClause.and(taskEntity.taskStatus.eq(TaskStatus.REQUESTED));
39-
return getTasksPage(pageable, whereClause, filterTaskListRequest.orderRequest().sortBy(), filterTaskListRequest.orderRequest().sortDirection());
41+
return getTasksPage(pageable, whereClause, pendingApprovalRequest.orderRequest().sortBy(), pendingApprovalRequest.orderRequest().sortDirection());
4042
}
4143

42-
private BooleanBuilder createFilter(FilterTaskListRequest request) {
44+
private BooleanBuilder createFilter(FilterTaskRequest request) {
4345
BooleanBuilder whereClause = new BooleanBuilder();
4446

4547
if (request.term() != null) {
@@ -58,8 +60,8 @@ private BooleanBuilder createFilter(FilterTaskListRequest request) {
5860
if (!request.nickName().isEmpty()) {
5961
whereClause.and(taskEntity.processor.nickname.eq(request.nickName()));
6062
}
61-
if (!request.taskStatus().isEmpty()) {
62-
whereClause.and(taskEntity.taskStatus.in(request.taskStatus()));
63+
if (request instanceof FilterTaskListRequest taskRequest && !taskRequest.taskStatus().isEmpty()) {
64+
whereClause.and(taskEntity.taskStatus.in(taskRequest.taskStatus()));
6365
}
6466
return whereClause;
6567
}

src/main/java/clap/server/application/Task/FindTaskListService.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package clap.server.application.Task;
22

3+
import clap.server.adapter.inbound.web.dto.task.FilterPendingApprovalRequest;
34
import clap.server.adapter.inbound.web.dto.task.FilterTaskListRequest;
45
import clap.server.adapter.inbound.web.dto.task.FilterTaskListResponse;
56

@@ -35,8 +36,8 @@ public Page<FilterTaskListResponse> findTasksRequestedByUser(Long requesterId, P
3536
}
3637

3738
@Override
38-
public Page<FilterPendingApprovalResponse> findPendingApprovalTasks(Long managerId, Pageable pageable, FilterTaskListRequest filterTaskListRequest) {
39+
public Page<FilterPendingApprovalResponse> findPendingApprovalTasks(Long managerId, Pageable pageable, FilterPendingApprovalRequest pendingApprovalRequest) {
3940
memberService.findActiveMember(managerId);
40-
return loadTaskPort.findPendingApprovalTasks(pageable, filterTaskListRequest);
41+
return loadTaskPort.findPendingApprovalTasks(pageable, pendingApprovalRequest);
4142
}
4243
}

src/main/java/clap/server/application/port/inbound/task/FindTaskListUsecase.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package clap.server.application.port.inbound.task;
22

3+
import clap.server.adapter.inbound.web.dto.task.FilterPendingApprovalRequest;
34
import clap.server.adapter.inbound.web.dto.task.FilterTaskListRequest;
45
import clap.server.adapter.inbound.web.dto.task.FilterTaskListResponse;
56
import clap.server.adapter.inbound.web.dto.task.FilterPendingApprovalResponse;
@@ -9,5 +10,5 @@
910
public interface FindTaskListUsecase {
1011
Page<FilterTaskListResponse> findTasksRequestedByUser(Long memberId, Pageable pageable, FilterTaskListRequest findTaskListRequest);
1112

12-
Page<FilterPendingApprovalResponse> findPendingApprovalTasks(Long userId, Pageable pageable, FilterTaskListRequest filterTaskListRequest);
13+
Page<FilterPendingApprovalResponse> findPendingApprovalTasks(Long userId, Pageable pageable, FilterPendingApprovalRequest pendingApprovalRequest);
1314
}

src/main/java/clap/server/application/port/outbound/task/LoadTaskPort.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package clap.server.application.port.outbound.task;
22

3+
import clap.server.adapter.inbound.web.dto.task.FilterPendingApprovalRequest;
34
import clap.server.adapter.inbound.web.dto.task.FilterTaskListRequest;
45
import clap.server.adapter.inbound.web.dto.task.FilterTaskListResponse;
56
import clap.server.adapter.inbound.web.dto.task.FilterPendingApprovalResponse;
@@ -18,6 +19,6 @@ public interface LoadTaskPort {
1819

1920
Page<FilterTaskListResponse> findTasksRequestedByUser(Long requesterId, Pageable pageable, FilterTaskListRequest findTaskListRequest);
2021

21-
Page<FilterPendingApprovalResponse> findPendingApprovalTasks(Pageable pageable, FilterTaskListRequest filterTaskListRequest);
22+
Page<FilterPendingApprovalResponse> findPendingApprovalTasks(Pageable pageable, FilterPendingApprovalRequest pendingApprovalRequest);
2223

2324
}

0 commit comments

Comments
 (0)