Skip to content
Snippets Groups Projects
Commit 2aee9757 authored by thib's avatar thib
Browse files

(feat): finish simple backend

parent d8a9ceed
No related branches found
No related tags found
No related merge requests found
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();
}
}
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;
}
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;
}
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> {}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment