package com.example.wfwebapi.controller; import com.example.wfwebapi.exception.ResourceNotFoundException; import com.example.wfwebapi.model.Caracter; import com.example.wfwebapi.repository.CaracterRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/api/v1/caracter") public class CaracterController { @Autowired private CaracterRepository caracterRepository; @GetMapping("/{id}") public Caracter getCaracterById(@PathVariable Long id) { return caracterRepository.findById(id) .orElseThrow(() -> new ResourceNotFoundException("Caracter non trouvé : " + id)); } @GetMapping("/") public List getCaracters() { return caracterRepository.findAll(); } @PostMapping public Caracter createCaracter(@RequestBody Caracter caracter) { return caracterRepository.save(caracter); } @PutMapping public Caracter updateCaracter(@RequestBody Caracter updatedCaracter) { return caracterRepository.findById(updatedCaracter.getId()) .map(c -> { c.setCaracter(updatedCaracter.getCaracter()); c.setImage(updatedCaracter.getImage()); return caracterRepository.save(c); }).orElseThrow(() -> new ResourceNotFoundException("Caracter non trouvé : " + updatedCaracter.getId())); } @DeleteMapping public void deleteCaracter(@RequestParam Long id) { if (!caracterRepository.existsById(id)) throw new ResourceNotFoundException("Caracter non trouvé : " + id); caracterRepository.deleteById(id); } }