diff --git a/todo-workspace/backend/src/main/java/com/hepia/backend/controller/TodoController.java b/todo-workspace/backend/src/main/java/com/hepia/backend/controller/TodoController.java index 88d8bea68a44e3db44e3fe591f5ebf75f2613fad..408aeea88a70df357e842df826edb63cdb7bcb5c 100644 --- a/todo-workspace/backend/src/main/java/com/hepia/backend/controller/TodoController.java +++ b/todo-workspace/backend/src/main/java/com/hepia/backend/controller/TodoController.java @@ -1,17 +1,38 @@ package com.hepia.backend.controller; +import com.hepia.backend.domain.Todo; +import com.hepia.backend.repository.TodoRepository; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +import static org.springframework.http.HttpStatus.CREATED; @RestController @RequestMapping("/todos") @RequiredArgsConstructor public class TodoController { + private final TodoRepository todoRepository; @GetMapping - public String getTodos() { - return "Hello World!"; + public ResponseEntity<List<Todo>> getAll() { + List<Todo> todos = todoRepository.findAll(); + return ResponseEntity.ok(todos); + } + + @PostMapping + public ResponseEntity<Todo> create(@RequestBody Todo todo) { + Todo saved = todoRepository.save(todo); + return ResponseEntity.status(CREATED).body(saved); + } + + @DeleteMapping("/{id}") + public ResponseEntity<Void> delete(@PathVariable Long id) { + todoRepository.deleteById(id); + return ResponseEntity.noContent().build(); } } diff --git a/todo-workspace/backend/src/main/java/com/hepia/backend/domain/entity/TodoEntity.java b/todo-workspace/backend/src/main/java/com/hepia/backend/domain/Todo.java similarity index 68% rename from todo-workspace/backend/src/main/java/com/hepia/backend/domain/entity/TodoEntity.java rename to todo-workspace/backend/src/main/java/com/hepia/backend/domain/Todo.java index c56c0c5dad6cd8429650464e577652f05754b4aa..f720a8927b04e07754b11282c71461ef841de741 100644 --- a/todo-workspace/backend/src/main/java/com/hepia/backend/domain/entity/TodoEntity.java +++ b/todo-workspace/backend/src/main/java/com/hepia/backend/domain/Todo.java @@ -1,20 +1,24 @@ -package com.hepia.backend.domain.entity; +package com.hepia.backend.domain; import jakarta.persistence.*; import lombok.*; +import org.hibernate.annotations.CreationTimestamp; @Entity -@Getter -@Setter -@Builder +@Table(name = "todos") +@Data @AllArgsConstructor @NoArgsConstructor -@Table(name = "todos") -public class TodoEntity { +@Builder +public class Todo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private String name; + private boolean completed; + + @CreationTimestamp private String createdAt; } diff --git a/todo-workspace/backend/src/main/java/com/hepia/backend/domain/model/Todo.java b/todo-workspace/backend/src/main/java/com/hepia/backend/domain/model/Todo.java deleted file mode 100644 index 473b54ca3b6b974dabd5687959f798408374fb2b..0000000000000000000000000000000000000000 --- a/todo-workspace/backend/src/main/java/com/hepia/backend/domain/model/Todo.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hepia.backend.domain.model; - -import lombok.*; - -import java.time.LocalDateTime; - -@Getter -@Setter -@Builder -@AllArgsConstructor -@NoArgsConstructor -public class Todo { - private Long id; - private String name; - private boolean completed; - private LocalDateTime createdAt; -} diff --git a/todo-workspace/backend/src/main/java/com/hepia/backend/repository/TodoRepository.java b/todo-workspace/backend/src/main/java/com/hepia/backend/repository/TodoRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..d8779a88061075151859e575602d2a80ae8862f8 --- /dev/null +++ b/todo-workspace/backend/src/main/java/com/hepia/backend/repository/TodoRepository.java @@ -0,0 +1,6 @@ +package com.hepia.backend.repository; + +import com.hepia.backend.domain.Todo; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface TodoRepository extends JpaRepository<Todo, Long> {}