Skip to content

Commit 4d20f39

Browse files
committed
CLAP-55 Fix: PersistenceAdapter에서 domain을 통해 dto로 변환
1 parent f9f6ea2 commit 4d20f39

File tree

17 files changed

+121
-146
lines changed

17 files changed

+121
-146
lines changed
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package clap.server.adapter.inbound.web.dto.task;
22

33

4+
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus;
5+
46
public record FindTaskListRequest(
57
Integer term, //조회기간
68
Long categoryId,
79
Long mainCategoryId,
810
String title,
911
String nickName, //처리자 닉네임
10-
Long statusId //1,2,3,4,5 중 하나
12+
TaskStatus taskStatus
1113
) {
1214
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package clap.server.adapter.inbound.web.task;
2+
3+
import clap.server.adapter.inbound.web.dto.task.CreateTaskRequest;
4+
import clap.server.adapter.inbound.web.dto.task.FindTaskListRequest;
5+
import clap.server.application.port.inbound.task.TaskCreateUsecase;
6+
import clap.server.application.port.inbound.task.TaskListUsecase;
7+
import clap.server.common.annotation.architecture.WebAdapter;
8+
import jakarta.validation.Valid;
9+
import lombok.RequiredArgsConstructor;
10+
import org.springframework.data.domain.PageRequest;
11+
import org.springframework.data.domain.Pageable;
12+
import org.springframework.http.ResponseEntity;
13+
import org.springframework.web.bind.annotation.*;
14+
15+
16+
@WebAdapter
17+
@RestController
18+
@RequiredArgsConstructor
19+
@RequestMapping("/api/tasks")
20+
public class TaskCreateController {
21+
22+
private final TaskCreateUsecase taskCreateUsecase;
23+
private static final Long memberId = 4L;
24+
25+
@PostMapping
26+
public ResponseEntity<?> createTask(
27+
@RequestBody @Valid CreateTaskRequest createTaskRequest){
28+
return ResponseEntity.ok(taskCreateUsecase.createTask(memberId, createTaskRequest));
29+
}
30+
}

src/main/java/clap/server/adapter/inbound/web/task/TaskController.java renamed to src/main/java/clap/server/adapter/inbound/web/task/TaskListController.java

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,29 @@
11
package clap.server.adapter.inbound.web.task;
22

3-
import clap.server.adapter.inbound.web.dto.task.CreateTaskRequest;
43
import clap.server.adapter.inbound.web.dto.task.FindTaskListRequest;
5-
import clap.server.application.port.inbound.task.TaskUsecase;
4+
import clap.server.application.port.inbound.task.TaskListUsecase;
65
import clap.server.common.annotation.architecture.WebAdapter;
7-
import jakarta.validation.Valid;
86
import lombok.RequiredArgsConstructor;
97
import org.springframework.data.domain.PageRequest;
108
import org.springframework.data.domain.Pageable;
119
import org.springframework.http.ResponseEntity;
1210
import org.springframework.web.bind.annotation.*;
1311

14-
1512
@WebAdapter
1613
@RestController
1714
@RequiredArgsConstructor
1815
@RequestMapping("/api/tasks")
19-
public class TaskController {
20-
21-
private final TaskUsecase taskUsecase;
16+
public class TaskListController {
17+
private final TaskListUsecase taskListUsecase;
2218
private static final Long memberId = 4L;
2319

24-
@PostMapping
25-
public ResponseEntity<?> createTask(
26-
@RequestBody @Valid CreateTaskRequest createTaskRequest){
27-
return ResponseEntity.ok(taskUsecase.createTask(memberId, createTaskRequest));
28-
}
2920

3021
@GetMapping("/requests")
3122
public ResponseEntity<?> getRequestedTaskList(
3223
@RequestParam(defaultValue = "0") int page,
3324
@RequestParam(defaultValue = "20") int size,
3425
@RequestBody FindTaskListRequest findTaskListRequest){
3526
Pageable pageable = PageRequest.of(page, size);
36-
return ResponseEntity.ok(taskUsecase.findRequestedTaskList(memberId, pageable, findTaskListRequest));
27+
return ResponseEntity.ok(taskListUsecase.findRequestedTaskList(memberId, pageable, findTaskListRequest));
3728
}
3829
}

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

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import clap.server.adapter.outbound.persistense.entity.task.TaskEntity;
66
import clap.server.adapter.outbound.persistense.mapper.TaskPersistenceMapper;
77
import clap.server.adapter.outbound.persistense.repository.task.TaskRepository;
8+
import clap.server.application.mapper.TaskMapper;
89
import clap.server.application.port.outbound.task.CommandTaskPort;
910
import clap.server.application.port.outbound.task.LoadTaskPort;
1011
import clap.server.common.annotation.architecture.PersistenceAdapter;
@@ -37,21 +38,8 @@ public Optional<Task> findById(Long id) {
3738

3839
@Override
3940
public Page<FindTaskListResponse> findAllByRequesterId(Long requesterId, Pageable pageable, FindTaskListRequest findTaskListRequest) {
40-
Page<TaskEntity> taskList = taskRepository.findRequestedTaskList(requesterId, pageable, findTaskListRequest);
41-
return taskList.map(this::convertToFindTaskListResponse);
42-
}
43-
44-
private FindTaskListResponse convertToFindTaskListResponse(TaskEntity taskEntity) {
45-
return new FindTaskListResponse(
46-
taskEntity.getTaskId(),
47-
taskEntity.getTaskCode(),
48-
taskEntity.getCreatedAt(),
49-
taskEntity.getCategory().getMainCategory().getName(),
50-
taskEntity.getCategory().getName(),
51-
taskEntity.getTitle(),
52-
taskEntity.getProcessor() != null ? taskEntity.getProcessor().getName() : null,
53-
taskEntity.getStatus().getStatusName(),
54-
taskEntity.getCompletedAt()
55-
);
41+
Page<Task> taskList = taskRepository.findRequestedTaskList(requesterId, pageable, findTaskListRequest)
42+
.map(taskPersistenceMapper::toDomain);
43+
return taskList.map(TaskMapper::toFindTaskListResponse);
5644
}
5745
}

src/main/java/clap/server/adapter/outbound/persistense/entity/task/StatusEntity.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

src/main/java/clap/server/adapter/outbound/persistense/entity/task/TaskEntity.java

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

33
import clap.server.adapter.outbound.persistense.entity.common.BaseTimeEntity;
44
import clap.server.adapter.outbound.persistense.entity.member.MemberEntity;
5+
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus;
56
import jakarta.persistence.*;
67
import lombok.AccessLevel;
78
import lombok.Getter;
@@ -37,10 +38,9 @@ public class TaskEntity extends BaseTimeEntity {
3738
@JoinColumn(name = "requester_id", nullable = false)
3839
private MemberEntity requester;
3940

40-
// 즉시 로딩
41-
@ManyToOne(fetch = FetchType.EAGER)
42-
@JoinColumn(name = "status_id", nullable = false)
43-
private StatusEntity status;
41+
@Column(nullable = false)
42+
@Enumerated(EnumType.STRING)
43+
private TaskStatus taskStatus;
4444

4545
@Column(nullable = false)
4646
private int processorOrder;

src/main/java/clap/server/adapter/outbound/persistense/mapper/StatusPersistenceMapper.java

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/main/java/clap/server/adapter/outbound/persistense/mapper/TaskPersistenceMapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import clap.server.domain.model.task.Task;
66
import org.mapstruct.Mapper;
77

8-
@Mapper(componentModel = "spring", uses = {MemberPersistenceMapper.class, LabelPersistenceMapper.class, CategoryPersistenceMapper.class, StatusPersistenceMapper.class})
8+
@Mapper(componentModel = "spring", uses = {MemberPersistenceMapper.class, LabelPersistenceMapper.class, CategoryPersistenceMapper.class})
99
public interface TaskPersistenceMapper extends PersistenceMapper<TaskEntity, Task> {
1010

1111
}

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

Lines changed: 0 additions & 9 deletions
This file was deleted.

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import clap.server.adapter.inbound.web.dto.task.FindTaskListRequest;
44
import clap.server.adapter.outbound.persistense.entity.task.QTaskEntity;
55
import clap.server.adapter.outbound.persistense.entity.task.TaskEntity;
6+
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus;
67
import com.querydsl.core.BooleanBuilder;
78
import com.querydsl.jpa.impl.JPAQueryFactory;
89
import lombok.RequiredArgsConstructor;
@@ -30,7 +31,7 @@ public Page<TaskEntity> findRequestedTaskList(Long requesterId, Pageable pageabl
3031
Long mainCategoryId = findTaskListRequest.mainCategoryId();
3132
String title = findTaskListRequest.title();
3233
String nickName = findTaskListRequest.nickName();
33-
Long statusId = findTaskListRequest.statusId();
34+
TaskStatus taskStatus = findTaskListRequest.taskStatus();
3435
Integer term = findTaskListRequest.term();
3536

3637
if (term != null) {
@@ -49,8 +50,8 @@ public Page<TaskEntity> findRequestedTaskList(Long requesterId, Pageable pageabl
4950
if (nickName != null) {
5051
whereClause.and(task.processor.nickname.eq(nickName));
5152
}
52-
if (statusId != null) {
53-
whereClause.and(task.status.statusId.eq(statusId));
53+
if (taskStatus != null) {
54+
whereClause.and(task.taskStatus.eq(taskStatus));
5455
}
5556

5657
List<TaskEntity> result = queryFactory

0 commit comments

Comments
 (0)