Zum Inhalt springen

Spring Data: Kontroller

package ch.axa.punchclock.controllers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import ch.axa.punchclock.models.People;
import ch.axa.punchclock.repositories.PeopleRepository;
import jakarta.validation.Valid;
@RestController
@RequestMapping("/api/people")
public class APIPeopleController {
@Autowired
private PeopleRepository personRepository;
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public People create(@RequestBody @Valid People person) {
return personRepository.save(person);
}
@GetMapping
public Iterable<People> index() {
return personRepository.findAll();
}
@GetMapping("/{id}")
public ResponseEntity<People> read(@PathVariable Long id) {
return ResponseEntity.of(personRepository.findById(id));
}
@PutMapping("/{id}")
public People update(@PathVariable Long id, @RequestBody @Valid People person) {
person.setId(id);
return personRepository.save(person);
}
@DeleteMapping("/{id}")
public ResponseEntity<People> delete(@PathVariable Long id) {
var person = personRepository.findById(id);
if(person.isPresent()) {
personRepository.delete(person.get());
return new ResponseEntity<>(HttpStatus.OK);
}
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
}