From e4eaf8123cb805b6fa67a1d70e01e288b1235ac9 Mon Sep 17 00:00:00 2001 From: Namju Kim Date: Sun, 10 Sep 2023 22:04:12 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EA=B2=8C=EC=8B=9C=EA=B8=80=20=EC=99=84?= =?UTF-8?q?=EB=A3=8C=20=EC=97=AC=EB=B6=80=20=EB=B3=80=EA=B2=BD=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/encodings.xml | 3 +- .../todo/controller/TodoAPIController.kt | 28 +++++++++++++++++++ .../todo/repository/TodoRepository.kt | 3 ++ .../simple_todo/todo/service/TodoSerivce.kt | 12 +++++++- src/main/resources/data.sql | 18 +++++++++--- .../resources/templates/fragments/footer.html | 4 +-- src/main/resources/templates/todo/todo.html | 24 +++++++++++++--- .../resources/templates/user/account.html | 2 +- .../resources/templates/user/register.html | 2 +- 9 files changed, 82 insertions(+), 14 deletions(-) create mode 100644 src/main/kotlin/com/namju/simple_todo/todo/controller/TodoAPIController.kt diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 1085555..a713738 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -1,6 +1,7 @@ + - + \ No newline at end of file diff --git a/src/main/kotlin/com/namju/simple_todo/todo/controller/TodoAPIController.kt b/src/main/kotlin/com/namju/simple_todo/todo/controller/TodoAPIController.kt new file mode 100644 index 0000000..792438e --- /dev/null +++ b/src/main/kotlin/com/namju/simple_todo/todo/controller/TodoAPIController.kt @@ -0,0 +1,28 @@ +package com.namju.simple_todo.todo.controller + +import com.namju.simple_todo.todo.service.TodoSerivce +import org.springframework.http.ResponseEntity +import org.springframework.web.bind.annotation.PatchMapping +import org.springframework.web.bind.annotation.PathVariable +import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.bind.annotation.RestController +import java.security.Principal + + +@RestController +@RequestMapping("/api/todo") +class TodoAPIController( + var todoService: TodoSerivce +) { + + @PatchMapping("/{id}") + fun updateTodo( + @PathVariable id: Long, + principal: Principal + ): ResponseEntity { + val username = principal.name + + todoService.changeDone(id) + return ResponseEntity.ok("업데이트 완료") + } +} diff --git a/src/main/kotlin/com/namju/simple_todo/todo/repository/TodoRepository.kt b/src/main/kotlin/com/namju/simple_todo/todo/repository/TodoRepository.kt index 8081bb8..bd6f8f2 100644 --- a/src/main/kotlin/com/namju/simple_todo/todo/repository/TodoRepository.kt +++ b/src/main/kotlin/com/namju/simple_todo/todo/repository/TodoRepository.kt @@ -8,4 +8,7 @@ import org.springframework.stereotype.Repository @Repository interface TodoRepository : JpaRepository { fun findByUser(user: UserEntity): List + + + fun findByUserOrderByIsDoneAsc(user: UserEntity): List } diff --git a/src/main/kotlin/com/namju/simple_todo/todo/service/TodoSerivce.kt b/src/main/kotlin/com/namju/simple_todo/todo/service/TodoSerivce.kt index afbb86c..875e1d7 100644 --- a/src/main/kotlin/com/namju/simple_todo/todo/service/TodoSerivce.kt +++ b/src/main/kotlin/com/namju/simple_todo/todo/service/TodoSerivce.kt @@ -4,6 +4,7 @@ import com.namju.simple_todo.todo.entity.TodoEntity import com.namju.simple_todo.todo.repository.TodoRepository import com.namju.simple_todo.user.entity.UserEntity import com.namju.simple_todo.user.repository.UserRepository +import org.slf4j.LoggerFactory import org.springframework.stereotype.Service @Service @@ -11,6 +12,7 @@ class TodoSerivce( var todoRepository: TodoRepository, var userRepository: UserRepository ) { + val log = LoggerFactory.getLogger(this::class.java) /** * 유저 아이디로 Todo 리스트 조회 * @param userId 유저 아이디 @@ -18,7 +20,7 @@ class TodoSerivce( */ fun getTodoListByUsername(username: String): List { val user: UserEntity = userRepository.findByUsername(username) - return todoRepository.findByUser(user) + return todoRepository.findByUserOrderByIsDoneAsc(user) } /** @@ -41,4 +43,12 @@ class TodoSerivce( ) ) } + + fun changeDone( + todoId: Long + ) { + val todo: TodoEntity = todoRepository.findById(todoId).get() + todo.isDone = !todo.isDone + log.info(todoRepository.save(todo).toString()); + } } diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 0ca68dc..b8b4a1b 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -1,9 +1,19 @@ -- email: cmsong111@naver.com , password: 1234 insert into user_entity (username, password, nickname) -values ('cmsong111@naver.com', '$2a$10$PdmeJs3yBaHhy6YfTF0Zze1Pw9GnxGFA7syoe/NhOmnmx1jOw43RK', '賲'); +values ('cmsong111@naver.com', '$2a$10$PdmeJs3yBaHhy6YfTF0Zze1Pw9GnxGFA7syoe/NhOmnmx1jOw43RK', '김남주'); -- todo insert into todo_entity (title, content, is_done, user_idx) -values ('1', '1 ', false, 1), - ('2', '2 ', false, 1), - ('3', '3 ', true, 1); +values ('할일1', '할일1 내용', false, 1), + ('할일2', '할일2 내용', false, 1), + ('할일3', '할일3 내용', true, 1), + ('할일3', '할일3 내용', true, 1), + ('할일3', '할일3 내용', true, 1), + ('할일3', '할일3 내용', true, 1), + ('할일3', '할일3 내용', true, 1), + ('할일3', '할일3 내용', true, 1), + ('할일3', '할일3 내용', true, 1), + ('할일3', '할일3 내용', true, 1), + ('할일3', '할일3 내용', true, 1), + ('할일5', '할일3 내용', true, 1), + ('할일101', '할일3 내용', true, 1); diff --git a/src/main/resources/templates/fragments/footer.html b/src/main/resources/templates/fragments/footer.html index d6ec812..f250d11 100644 --- a/src/main/resources/templates/fragments/footer.html +++ b/src/main/resources/templates/fragments/footer.html @@ -1,7 +1,7 @@ -