Skip to content

Commit ce8149e

Browse files
committed
CLAP-56 Feat: 요청내역에 대한 상세 조회
1 parent 9265b4b commit ce8149e

19 files changed

+190
-12
lines changed

src/main/java/clap/server/HealthCheckController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
@RequestMapping("/health")
1010
public class HealthCheckController {
1111
@GetMapping
12-
public ResponseEntity<?> healthcheck(){
12+
public ResponseEntity<String> healthcheck(){
1313
return ResponseEntity.ok("health check");
1414
}
1515
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package clap.server.adapter.inbound.web.dto.task;
2+
3+
import java.time.LocalDateTime;
4+
5+
public record AttachmentResponse(
6+
String fileName,
7+
String fileSize,
8+
String fileUrl,
9+
LocalDateTime fileUploadedAt
10+
) {}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package clap.server.adapter.inbound.web.dto.task;
2+
3+
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus;
4+
5+
import java.time.LocalDateTime;
6+
import java.util.List;
7+
8+
public record FindTaskDetailsResponse(
9+
Long taskId,
10+
String taskCode,
11+
LocalDateTime requestedAt,
12+
LocalDateTime completedAt,
13+
TaskStatus taskStatus,
14+
String requesterNickName,
15+
String requesterImageUrl,
16+
String processorNickName,
17+
String processorImageUrl,
18+
String mainCategoryName,
19+
String categoryName,
20+
String title,
21+
String description,
22+
List<AttachmentResponse> attachmentResponses
23+
24+
//TODO: taskhistory 및 comment 정보 추가
25+
) {}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus;
55

66
public record FindTaskListRequest(
7-
Integer term, //조회기간
7+
Integer term, //조회기간: 1주일, 1개월, 3개월
88
Long categoryId,
99
Long mainCategoryId,
1010
String title,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
public record FindTaskListResponse(
88
Long taskId,
99
String taskCode,
10-
LocalDateTime createdAt,
10+
LocalDateTime requestedAt,
1111
String mainCategoryName,
1212
String categoryName,
1313
String title,

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

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

33
import clap.server.adapter.inbound.web.dto.task.CreateTaskRequest;
4+
import clap.server.adapter.inbound.web.dto.task.CreateTaskResponse;
45
import clap.server.application.port.inbound.task.CreateTaskUsecase;
56
import clap.server.common.annotation.architecture.WebAdapter;
67
import jakarta.validation.Valid;
@@ -19,7 +20,7 @@ public class CreateTaskController {
1920
private static final Long memberId = 4L;
2021

2122
@PostMapping
22-
public ResponseEntity<?> createTask(
23+
public ResponseEntity<CreateTaskResponse> createTask(
2324
@RequestBody @Valid CreateTaskRequest createTaskRequest){
2425
return ResponseEntity.ok(taskCreateUsecase.createTask(memberId, createTaskRequest));
2526
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package clap.server.adapter.inbound.web.task;
2+
3+
import clap.server.adapter.inbound.web.dto.task.FindTaskDetailsResponse;
4+
import clap.server.application.port.inbound.task.FindTaskDetailsUsecase;
5+
import clap.server.common.annotation.architecture.WebAdapter;
6+
import lombok.RequiredArgsConstructor;
7+
8+
import org.springframework.http.ResponseEntity;
9+
import org.springframework.web.bind.annotation.*;
10+
11+
import java.util.List;
12+
13+
@WebAdapter
14+
@RestController
15+
@RequiredArgsConstructor
16+
@RequestMapping("/api/tasks")
17+
public class FindTaskDetailsController {
18+
private final FindTaskDetailsUsecase taskDetailsUsecase;
19+
private static final Long taskId = 3L;
20+
private static final Long memberId = 4L;
21+
22+
@GetMapping("/requests/details")
23+
public ResponseEntity<List<FindTaskDetailsResponse>> getRequestedTaskDetails(){
24+
return ResponseEntity.ok(taskDetailsUsecase.findRequestedTaskDetails(memberId, taskId));
25+
}
26+
}

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

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

33
import clap.server.adapter.inbound.web.dto.task.FindTaskListRequest;
4+
import clap.server.adapter.inbound.web.dto.task.FindTaskListResponse;
45
import clap.server.application.port.inbound.task.FindTaskListUsecase;
56
import clap.server.common.annotation.architecture.WebAdapter;
67
import lombok.RequiredArgsConstructor;
8+
import org.springframework.data.domain.Page;
79
import org.springframework.data.domain.PageRequest;
810
import org.springframework.data.domain.Pageable;
911
import org.springframework.http.ResponseEntity;
@@ -19,7 +21,7 @@ public class FindTaskListController {
1921

2022

2123
@GetMapping("/requests")
22-
public ResponseEntity<?> getRequestedTaskList(
24+
public ResponseEntity<Page<FindTaskListResponse>> getRequestedTaskList(
2325
@RequestParam(defaultValue = "0") int page,
2426
@RequestParam(defaultValue = "20") int size,
2527
@RequestBody FindTaskListRequest findTaskListRequest){

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,20 @@
44
import clap.server.adapter.outbound.persistense.mapper.AttachmentPersistenceMapper;
55
import clap.server.adapter.outbound.persistense.repository.task.AttachmentRepository;
66
import clap.server.application.port.outbound.task.CommandAttachmentPort;
7+
import clap.server.application.port.outbound.task.LoadAttachmentPort;
78
import clap.server.common.annotation.architecture.PersistenceAdapter;
89
import clap.server.domain.model.task.Attachment;
910

1011
import lombok.RequiredArgsConstructor;
1112

1213
import java.util.List;
14+
import java.util.Optional;
1315
import java.util.stream.Collectors;
1416

1517

1618
@PersistenceAdapter
1719
@RequiredArgsConstructor
18-
public class AttachmentPersistenceAdapter implements CommandAttachmentPort {
20+
public class AttachmentPersistenceAdapter implements CommandAttachmentPort, LoadAttachmentPort {
1921

2022
private final AttachmentRepository attachmentRepository;
2123
private final AttachmentPersistenceMapper attachmentPersistenceMapper;
@@ -34,4 +36,12 @@ public void saveAll(List<Attachment> attachments) {
3436
.collect(Collectors.toList());
3537
attachmentRepository.saveAll(attachmentEntities);
3638
}
39+
40+
@Override
41+
public List<Attachment> findAllByTaskId(Long taskId) {
42+
List<AttachmentEntity> attachmentEntities = attachmentRepository.findAllByTask_TaskId(taskId);
43+
return attachmentEntities.stream()
44+
.map(attachmentPersistenceMapper::toDomain)
45+
.collect(Collectors.toList());
46+
}
3747
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import lombok.experimental.SuperBuilder;
1111

1212
import java.time.LocalDateTime;
13+
import java.util.ArrayList;
14+
import java.util.List;
1315

1416
@Entity
1517
@Table(name = "task")
@@ -62,5 +64,4 @@ public class TaskEntity extends BaseTimeEntity {
6264

6365
@Column
6466
private LocalDateTime completedAt;
65-
6667
}

0 commit comments

Comments
 (0)