diff --git a/src/main/java/com/uva/users/Controller/ControllerVinos.java b/src/main/java/com/uva/users/Controller/ControllerVinos.java index 99b473c9dbf556ffd909e1d583ab704f1f168593..501388948dc540da1a0df8ec4fef69c87498179b 100644 --- a/src/main/java/com/uva/users/Controller/ControllerVinos.java +++ b/src/main/java/com/uva/users/Controller/ControllerVinos.java @@ -12,6 +12,8 @@ import com.uva.users.Repository.BodegaRepository; import com.uva.users.Repository.VinoConRelacionRepository; import com.uva.users.Repository.VinoRepository; +import jakarta.persistence.Column; + import java.util.*; @RestController @@ -33,10 +35,52 @@ public class ControllerVinos { } @PutMapping("/{id}") - public String putVinos(@RequestBody String body, @PathVariable("id") Long identificador) { - return "Realizada operación Put. Con Id: " + identificador + ". Contenido del cuerpo de la petición: " + body; + public String putVinos(@RequestBody Vino vino, @PathVariable("id") Integer identificador) { + Optional<Vino> vinoExistente = repository.findById(identificador); + + if (vinoExistente.isPresent()) { + Vino vinoActualizado = vinoExistente.get(); + vinoActualizado.setNombreComercial(vino.getNombreComercial()); + vinoActualizado.setBodegaId(vino.getBodegaId()); + vinoActualizado.setPrecio(vino.getPrecio()); + vinoActualizado.setDenominacion(vino.getDenominacion()); + vinoActualizado.setCategoria(vino.getCategoria()); + + repository.save(vinoActualizado); // Guarda el vino actualizado + return "Vino con ID " + identificador + " actualizado correctamente."; + } else { + return "Vino con ID " + identificador + " no encontrado."; + } + } + + @DeleteMapping("/{id}") + public String deleteVino(@PathVariable("id") Integer identificador) { + Optional<Vino> vinoExistente = repository.findById(identificador); // Buscar vino por ID + + if (vinoExistente.isPresent()) { + repository.delete(vinoExistente.get()); // Eliminar el vino + return "Vino con ID " + identificador + " eliminado correctamente."; + } else { + return "Vino con ID " + identificador + " no encontrado."; + } + } + + @PostMapping("/newVino") + public String newVino(@RequestBody Vino newVino) { + try { + repository.save(newVino); + return "Nuevo registro creado"; + } catch (Exception e) { + throw new VinoException("Error al crear el nuevo registro."); + } } + + + + + // CODIGO NO IMPORTANTE PARA ESTA ENTREGA + @PostMapping("/vinos") public String postVinos(@RequestBody String body) { return "Post: " + body; @@ -83,16 +127,6 @@ public class ControllerVinos { return respuesta.toString(); } - @PostMapping("/newVino") - public String newVino(@RequestBody Vino newVino) { - try { - repository.save(newVino); - return "Nuevo registro creado"; - } catch (Exception e) { - throw new VinoException("Error al crear el nuevo registro."); - } - } - @GetMapping("/VinoPorNombre/{nombre}") public Vino getVinoPorNombre_Comercial(@PathVariable String nombre) { Vino vino = repository.findByNombreComercial(nombre)