From 257344734d89c63fc13fe39dfe198eaeeeb806a7 Mon Sep 17 00:00:00 2001 From: kang yeon joo Date: Thu, 17 Oct 2024 12:46:01 +0900 Subject: [PATCH 1/4] =?UTF-8?q?test:=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../poptato/todo/api/TodoControllerTest.java | 15 +++++++++++++++ .../todo/application/TodoServiceTest.java | 16 ++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/src/test/java/server/poptato/todo/api/TodoControllerTest.java b/src/test/java/server/poptato/todo/api/TodoControllerTest.java index b3b3601..c93f838 100644 --- a/src/test/java/server/poptato/todo/api/TodoControllerTest.java +++ b/src/test/java/server/poptato/todo/api/TodoControllerTest.java @@ -333,4 +333,19 @@ public void shouldReturnOk_WhenIsBookmarkToggled() throws Exception { .andDo(print()); } + + @DisplayName("마감기한 수정 요청 시 성공한다.") + @Test + void 마감기한_수정_요청_성공_응답() throws Exception { + //given + Long todoId = 1L; + + //when + mockMvc.perform(patch("/todo/{todoId}/deadline", todoId) + .header("Authorization", "Bearer " + accessToken) + .content("{\"deadline\": \"2024-12-25\"}") + .contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andDo(print()); + } } diff --git a/src/test/java/server/poptato/todo/application/TodoServiceTest.java b/src/test/java/server/poptato/todo/application/TodoServiceTest.java index 7f47d1d..53d73cb 100644 --- a/src/test/java/server/poptato/todo/application/TodoServiceTest.java +++ b/src/test/java/server/poptato/todo/application/TodoServiceTest.java @@ -380,4 +380,20 @@ void getYesterdays_ShouldReturnPagedResult() { assertThat(todoInfo.getDeadline()).isEqualTo(LocalDate.of(2024,10,26)); assertThat(todoInfo.getIsBookmark()).isTrue(); } + + @DisplayName("마감기한 수정 시 성공한다.") + @Test + void 마감기한_수정_성공(){ + //given + Long userId = 1L; + Long todoId = 10L; + LocalDate updateDate = LocalDate.of(2024,12,25); + + //when + todoService.updateDeadline(userId,todoId,updateDate); + Todo findTodo = todoRepository.findById(todoId).get(); + + //then + assertThat(findTodo.getDeadline()).isEqualTo(updateDate); + } } \ No newline at end of file From 0cd15e34097e80fce59925389c068284610b3299 Mon Sep 17 00:00:00 2001 From: kang yeon joo Date: Thu, 17 Oct 2024 12:46:22 +0900 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20api=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/server/poptato/todo/api/TodoController.java | 9 +++++++++ .../todo/api/request/DeadlineUpdateRequestDto.java | 12 ++++++++++++ .../server/poptato/todo/application/TodoService.java | 10 ++++++++++ .../java/server/poptato/todo/domain/entity/Todo.java | 4 ++++ 4 files changed, 35 insertions(+) create mode 100644 src/main/java/server/poptato/todo/api/request/DeadlineUpdateRequestDto.java diff --git a/src/main/java/server/poptato/todo/api/TodoController.java b/src/main/java/server/poptato/todo/api/TodoController.java index da4c35c..4e5d419 100644 --- a/src/main/java/server/poptato/todo/api/TodoController.java +++ b/src/main/java/server/poptato/todo/api/TodoController.java @@ -5,6 +5,7 @@ import org.springframework.web.bind.annotation.*; import server.poptato.global.response.BaseResponse; import server.poptato.todo.api.request.BacklogCreateRequestDto; +import server.poptato.todo.api.request.DeadlineUpdateRequestDto; import server.poptato.todo.api.request.DragAndDropRequestDto; import server.poptato.todo.api.request.SwipeRequestDto; import server.poptato.todo.application.TodoService; @@ -95,4 +96,12 @@ public BaseResponse getTodoInfo(@UserId Long userId, TodoDetailResponseDto response = todoService.getTodoInfo(userId, todoId); return new BaseResponse<>(response); } + + @PatchMapping("/todo/{todoId}/deadline") + public BaseResponse updateDeadline(@UserId Long userId, + @PathVariable Long todoId, + @Validated @RequestBody DeadlineUpdateRequestDto requestDto){ + todoService.updateDeadline(userId, todoId, requestDto.getDeadline()); + return new BaseResponse<>(); + } } diff --git a/src/main/java/server/poptato/todo/api/request/DeadlineUpdateRequestDto.java b/src/main/java/server/poptato/todo/api/request/DeadlineUpdateRequestDto.java new file mode 100644 index 0000000..392c827 --- /dev/null +++ b/src/main/java/server/poptato/todo/api/request/DeadlineUpdateRequestDto.java @@ -0,0 +1,12 @@ +package server.poptato.todo.api.request; + +import lombok.Getter; +import lombok.NoArgsConstructor; + +import java.time.LocalDate; + +@Getter +@NoArgsConstructor +public class DeadlineUpdateRequestDto { + LocalDate deadline; +} diff --git a/src/main/java/server/poptato/todo/application/TodoService.java b/src/main/java/server/poptato/todo/application/TodoService.java index cc85b07..5674265 100644 --- a/src/main/java/server/poptato/todo/application/TodoService.java +++ b/src/main/java/server/poptato/todo/application/TodoService.java @@ -241,4 +241,14 @@ public TodoDetailResponseDto getTodoInfo(Long userId, Long todoId) { .deadline(findTodo.getDeadline()) .build(); } + + public void updateDeadline(Long userId, Long todoId, LocalDate deadline) { + checkIsExistUser(userId); + Todo findTodo = todoRepository.findById(todoId) + .orElseThrow(() -> new TodoException(TODO_NOT_EXIST)); + if(findTodo.getUserId()!=userId) + throw new TodoException(TodoExceptionErrorCode.TODO_USER_NOT_MATCH); + findTodo.updateDeadline(deadline); + todoRepository.save(findTodo); + } } diff --git a/src/main/java/server/poptato/todo/domain/entity/Todo.java b/src/main/java/server/poptato/todo/domain/entity/Todo.java index c1a0134..b4b9c8c 100644 --- a/src/main/java/server/poptato/todo/domain/entity/Todo.java +++ b/src/main/java/server/poptato/todo/domain/entity/Todo.java @@ -88,4 +88,8 @@ public void setTodayOrder(int order) { public void setBacklogOrder(int order) { this.backlogOrder = order; } + + public void updateDeadline(LocalDate deadline) { + this.deadline = deadline; + } } From e052d957f2a7565ba6a30a38186f3ff8f3f33077 Mon Sep 17 00:00:00 2001 From: kang yeon joo Date: Thu, 17 Oct 2024 12:49:38 +0900 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20test=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/server/poptato/todo/application/TodoServiceTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/server/poptato/todo/application/TodoServiceTest.java b/src/test/java/server/poptato/todo/application/TodoServiceTest.java index 53d73cb..6c9ecd0 100644 --- a/src/test/java/server/poptato/todo/application/TodoServiceTest.java +++ b/src/test/java/server/poptato/todo/application/TodoServiceTest.java @@ -386,7 +386,7 @@ void getYesterdays_ShouldReturnPagedResult() { void 마감기한_수정_성공(){ //given Long userId = 1L; - Long todoId = 10L; + Long todoId = 11L; LocalDate updateDate = LocalDate.of(2024,12,25); //when From 5a32f478fd5c2e290f83a420634cadd6381e9762 Mon Sep 17 00:00:00 2001 From: kang yeon joo Date: Thu, 17 Oct 2024 13:00:43 +0900 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20test=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/server/poptato/todo/application/TodoServiceTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/server/poptato/todo/application/TodoServiceTest.java b/src/test/java/server/poptato/todo/application/TodoServiceTest.java index 6c9ecd0..3283812 100644 --- a/src/test/java/server/poptato/todo/application/TodoServiceTest.java +++ b/src/test/java/server/poptato/todo/application/TodoServiceTest.java @@ -356,7 +356,6 @@ void getYesterdays_ShouldReturnPagedResult() { int page = 0; int size = 5; // 한번에 5개의 todo 가져오기 - // when PaginatedYesterdayResponseDto result = todoService.getYesterdays(userId, page, size);