Se maneja el control de excepciones en ServiceUzyTMenu

parent 4682afe6
......@@ -2,7 +2,6 @@ package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTMenu;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTMenu.IServiceUzyTMenu;
import javassist.NotFoundException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
......@@ -24,13 +23,8 @@ public class UzyTMenuController {
}
@GetMapping("/exampleFindId/{id}")
public ResponseEntity<DtoUzyTMenu> ListarPorID(@PathVariable Long id) {
try {
DtoUzyTMenu uzyTMenu = serviceUzyTMenu.ListarPorID(id);
return ResponseEntity.ok(uzyTMenu);
} catch (NotFoundException e) {
return ResponseEntity.notFound().build();
}
public DtoUzyTMenu ListarPorID(@PathVariable Long id) {
return serviceUzyTMenu.ListarPorID(id);
}
@GetMapping("/getAll")
......@@ -46,13 +40,8 @@ public class UzyTMenuController {
}
@PutMapping("/editar/{id}")
public ResponseEntity<DtoUzyTMenu> editar(@PathVariable Long id, @RequestBody DtoUzyTMenu dtoUzyTMenu) {
try {
DtoUzyTMenu updatedUzyTMenu = serviceUzyTMenu.editar(id, dtoUzyTMenu);
return ResponseEntity.ok(updatedUzyTMenu);
} catch (NotFoundException e) {
return ResponseEntity.notFound().build();
}
public DtoUzyTMenu editar(@PathVariable Long id, @RequestBody DtoUzyTMenu dtoUzyTMenu) {
return serviceUzyTMenu.editar(id, dtoUzyTMenu);
}
......
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTMenu;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTMenu;
import javassist.NotFoundException;
import java.util.List;
public interface IServiceUzyTMenu {
DtoUzyTMenu ListarPorID(Long id) throws NotFoundException;
DtoUzyTMenu ListarPorID(Long id);
List<DtoUzyTMenu> ListarRegistros();
DtoUzyTMenu guardar(DtoUzyTMenu dtoUzyTMenu);
DtoUzyTMenu editar(Long id, DtoUzyTMenu dtoUzyTMenu) throws NotFoundException;
DtoUzyTMenu editar(Long id, DtoUzyTMenu dtoUzyTMenu);
boolean eliminar(Long id);
}
......@@ -2,13 +2,12 @@ package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTMenu;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTMenu;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTMenu;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.InvalidArgumentException;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTMenuMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTMenu;
import javassist.NotFoundException;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
public class ServiceUzyTMenu implements IServiceUzyTMenu {
......@@ -21,52 +20,81 @@ public class ServiceUzyTMenu implements IServiceUzyTMenu {
}
@Override
public DtoUzyTMenu ListarPorID(Long id) throws NotFoundException {
Optional<ModelUzyTMenu> optionalEntity = daoUzyTMenu.findById(id);
if (optionalEntity.isPresent()) {
ModelUzyTMenu entity = optionalEntity.get();
public DtoUzyTMenu ListarPorID(Long id) {
if (id <= 0) {
throw new InvalidArgumentException("El parámetro 'id' debe ser un valor positivo.");
}
try {
ModelUzyTMenu entity = daoUzyTMenu.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
return uzyTMenuMapper.entityToDto(entity);
} else {
throw new NotFoundException("Uzytmenu not found");
} catch (ResourceNotFoundException ex) {
throw ex;
} catch (Exception ex) { // Manejo de cualquier error en el servidor
throw new RuntimeException("Error al buscar el registro con ID: " + id);
}
}
@Override
public List<DtoUzyTMenu> ListarRegistros() {
List<ModelUzyTMenu> entities = daoUzyTMenu.findAll();
return uzyTMenuMapper.entitiesToDtos(entities);
try {
List<ModelUzyTMenu> entities = daoUzyTMenu.findAll();
return uzyTMenuMapper.entitiesToDtos(entities);
} catch (Exception ex) {
throw new RuntimeException("Error al listar registros de menú: " + ex.getMessage());
}
}
@Override
public DtoUzyTMenu guardar(DtoUzyTMenu dtoUzyTMenu) {
ModelUzyTMenu entity = uzyTMenuMapper.dtoToEntity(dtoUzyTMenu);
ModelUzyTMenu savedEntity = daoUzyTMenu.save(entity);
return uzyTMenuMapper.entityToDto(savedEntity);
try {
ModelUzyTMenu entity = uzyTMenuMapper.dtoToEntity(dtoUzyTMenu);
ModelUzyTMenu savedEntity = daoUzyTMenu.save(entity);
return uzyTMenuMapper.entityToDto(savedEntity);
} catch (Exception ex) {
throw new RuntimeException("Error al guardar el registro: " + ex.getMessage());
}
}
@Override
public DtoUzyTMenu editar(Long id, DtoUzyTMenu dtoUzyTMenu) throws NotFoundException {
Optional<ModelUzyTMenu> optionalEntity = daoUzyTMenu.findById(id);
if (optionalEntity.isPresent()) {
ModelUzyTMenu entity = optionalEntity.get();
// Actualizar los campos de la entidad con los valores del DTO
entity.setUzytmenuNombre(dtoUzyTMenu.getUzytmenuNombre());
public DtoUzyTMenu editar(Long id, DtoUzyTMenu dtoUzyTMenu) {
if (id <= 0) {
throw new InvalidArgumentException("El ID del menú debe ser válido y mayor que cero.");
}
try {
ModelUzyTMenu entity = daoUzyTMenu.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Registro no encontrado con ID: " + id));
if (dtoUzyTMenu.getUzytmenuNombre() != null) {
// Actualizar los campos de la entidad con los valores del DTO
entity.setUzytmenuNombre(dtoUzyTMenu.getUzytmenuNombre());
}
ModelUzyTMenu updatedEntity = daoUzyTMenu.save(entity);
return uzyTMenuMapper.entityToDto(updatedEntity);
} else {
throw new NotFoundException("Uzytmenu not found");
} catch (ResourceNotFoundException ex) {
throw ex;
} catch (Exception ex) {
throw new RuntimeException("Error al editar el registro -> " + ex.getMessage());
}
}
@Override
public boolean eliminar(Long id) {
ModelUzyTMenu entity = daoUzyTMenu.findById(id).orElse(null);
if (entity != null) {
daoUzyTMenu.delete(entity);
return true;
if (id == null || id <= 0) {
throw new InvalidArgumentException("El ID del registro debe ser válido y mayor que cero.");
}
try {
ModelUzyTMenu entity = daoUzyTMenu.findById(id).orElseThrow(() -> new ResourceNotFoundException("Registro no encontrado con ID: " + id));
if (entity != null) {
daoUzyTMenu.delete(entity);
return true;
}
return false;
} catch (ResourceNotFoundException ex) {
throw ex;
} catch (Exception ex) {
throw new RuntimeException("Error al eliminar el registro: " + ex.getMessage());
}
return false;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment