Se manejan las excepciones de ServiceUzyTPerfil

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