Se manejan las excepciones de ServiceUzyTPerfil

parent 74c5342c
...@@ -13,5 +13,5 @@ public interface IServiceUzyTPerfil { ...@@ -13,5 +13,5 @@ public interface IServiceUzyTPerfil {
DtoUzyTPerfil editar(Long id, DtoUzyTPerfil dtoUzyTPerfil); DtoUzyTPerfil editar(Long id, DtoUzyTPerfil dtoUzyTPerfil);
void eliminar(Long id); boolean eliminar(Long id);
} }
...@@ -2,6 +2,7 @@ package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTPerfil; ...@@ -2,6 +2,7 @@ package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTPerfil; import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfil; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.InvalidArgumentException;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException; import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTPerfilMapper; import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTPerfilMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfil; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfil;
...@@ -23,41 +24,77 @@ public class ServiceUzyTPerfil implements IServiceUzyTPerfil { ...@@ -23,41 +24,77 @@ public class ServiceUzyTPerfil implements IServiceUzyTPerfil {
@Override @Override
public DtoUzyTPerfil ListarPorID(@PathVariable Long id) { public DtoUzyTPerfil ListarPorID(@PathVariable Long id) {
ModelUzyTPerfil entity = daoUzyTPerfil.findById(id) if (id <= 0) {
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id)); throw new InvalidArgumentException("El parámetro 'id' debe ser un valor positivo.");
return mapper.entityToDto(entity); }
try {
ModelUzyTPerfil entity = daoUzyTPerfil.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
return mapper.entityToDto(entity);
} 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 @Override
public List<DtoUzyTPerfil> ListarRegistros() { public List<DtoUzyTPerfil> ListarRegistros() {
List<ModelUzyTPerfil> entities = daoUzyTPerfil.findAll(); try {
return mapper.entitiesToDtos(entities); List<ModelUzyTPerfil> entities = daoUzyTPerfil.findAll();
return mapper.entitiesToDtos(entities);
} catch (Exception ex) {
throw new RuntimeException("Error al listar los registros: " + ex.getMessage());
}
} }
@Override @Override
public DtoUzyTPerfil guardar(DtoUzyTPerfil dtoUzyTPerfil) { public DtoUzyTPerfil guardar(DtoUzyTPerfil dtoUzyTPerfil) {
ModelUzyTPerfil entity = mapper.dtoToEntity(dtoUzyTPerfil); try {
ModelUzyTPerfil nuevoEntity = daoUzyTPerfil.save(entity); ModelUzyTPerfil entity = mapper.dtoToEntity(dtoUzyTPerfil);
return mapper.entityToDto(nuevoEntity); ModelUzyTPerfil nuevoEntity = daoUzyTPerfil.save(entity);
return mapper.entityToDto(nuevoEntity);
} catch (Exception ex) {
throw new RuntimeException("Error al guardar el registro: " + ex.getMessage());
}
} }
@Override @Override
public DtoUzyTPerfil editar(Long id, DtoUzyTPerfil dtoUzyTPerfil) { public DtoUzyTPerfil editar(Long id, DtoUzyTPerfil dtoUzyTPerfil) {
if (id <= 0) {
throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
}
try { try {
ModelUzyTPerfil entity = daoUzyTPerfil.findById(id) ModelUzyTPerfil entity = daoUzyTPerfil.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id)); .orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
entity.setUzytperfil_nombre(dtoUzyTPerfil.getUzytperfil_nombre()); if (dtoUzyTPerfil.getUzytperfil_nombre() != null) {
entity.setUzytperfil_nombre(dtoUzyTPerfil.getUzytperfil_nombre());
}
ModelUzyTPerfil updatedEntity = daoUzyTPerfil.save(entity); ModelUzyTPerfil updatedEntity = daoUzyTPerfil.save(entity);
return mapper.entityToDto(updatedEntity); return mapper.entityToDto(updatedEntity);
} catch (Exception e) { } catch (ResourceNotFoundException ex) {
throw new ResourceNotFoundException("Error al editar el registro: " + e.getMessage()); throw ex;
} catch (Exception ex) {
throw new RuntimeException("Error al editar el registro -> " + ex.getMessage());
} }
} }
@Override @Override
public void eliminar(Long id) { public boolean eliminar(Long id) {
ModelUzyTPerfil dato = daoUzyTPerfil.findById(id).get(); if (id == null || id <= 0) {
throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
daoUzyTPerfil.delete(dato); }
try {
ModelUzyTPerfil entity = daoUzyTPerfil.findById(id).orElseThrow(() -> new ResourceNotFoundException("Registro no encontrado con ID: " + id));
if (entity != null) {
daoUzyTPerfil.delete(entity);
return true;
}
return false;
} catch (ResourceNotFoundException ex) {
throw ex;
} catch (Exception ex) {
throw new RuntimeException("Error al eliminar el registro: " + ex.getMessage());
}
} }
} }
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