Se maneja el control de excepciones en ServiceUzyTClasificadorPresup

parent a07ca00f
...@@ -7,12 +7,10 @@ import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTClasificado ...@@ -7,12 +7,10 @@ import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTClasificado
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTClasificadorPresup; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTClasificadorPresup;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Service @Service
public class ServiceUzyTClasificadorPresup implements IServiceUzyTClasificadorPresup{ public class ServiceUzyTClasificadorPresup implements IServiceUzyTClasificadorPresup {
private final DaoUzyTClasificadorPresup daoUzyTClasificadorPresup; private final DaoUzyTClasificadorPresup daoUzyTClasificadorPresup;
private final UzyTClasificadorPresupMapper mapper; private final UzyTClasificadorPresupMapper mapper;
...@@ -24,66 +22,101 @@ public class ServiceUzyTClasificadorPresup implements IServiceUzyTClasificadorPr ...@@ -24,66 +22,101 @@ public class ServiceUzyTClasificadorPresup implements IServiceUzyTClasificadorPr
@Override @Override
public DtoUzyTClasificadorPresup ListarPorID(@PathVariable Long id) { public DtoUzyTClasificadorPresup ListarPorID(@PathVariable Long id) {
ModelUzyTClasificadorPresup entity = daoUzyTClasificadorPresup.findById(id) if (id <= 0) {
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id)); throw new IllegalArgumentException("El parámetro 'id' debe ser un valor positivo.");
return mapper.entityToDto(entity); }
try {
ModelUzyTClasificadorPresup entity = daoUzyTClasificadorPresup.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<DtoUzyTClasificadorPresup> ListarRegistros() { public List<DtoUzyTClasificadorPresup> ListarRegistros() {
List<ModelUzyTClasificadorPresup> entities = daoUzyTClasificadorPresup.findAll(); try {
return entities.stream() List<ModelUzyTClasificadorPresup> entities = daoUzyTClasificadorPresup.findAll();
.map(mapper::entityToDto) return mapper.entitiesToDtos(entities);
.collect(Collectors.toList()); } catch (Exception ex) {
throw new RuntimeException("Error al listar los registros: " + ex.getMessage());
}
} }
@Override @Override
public List<DtoUzyTClasificadorPresup> obtenerClasificadorPresup() { public List<DtoUzyTClasificadorPresup> obtenerClasificadorPresup() {
List<ModelUzyTClasificadorPresup> entities = daoUzyTClasificadorPresup.obtenerClasificadorPresup(); try {
return mapper.entitiesToDtos(entities); List<ModelUzyTClasificadorPresup> entities = daoUzyTClasificadorPresup.obtenerClasificadorPresup();
return mapper.entitiesToDtos(entities);
} catch (Exception ex) {
throw new RuntimeException("Error al listar los registros: " + ex.getMessage());
}
} }
@Override @Override
public DtoUzyTClasificadorPresup guardar(DtoUzyTClasificadorPresup dtoUzyTClasificadorPresup) { public DtoUzyTClasificadorPresup guardar(DtoUzyTClasificadorPresup dtoUzyTClasificadorPresup) {
ModelUzyTClasificadorPresup entity = mapper.dtoToEntity(dtoUzyTClasificadorPresup); try {
ModelUzyTClasificadorPresup nuevoEntity = daoUzyTClasificadorPresup.save(entity); ModelUzyTClasificadorPresup entity = mapper.dtoToEntity(dtoUzyTClasificadorPresup);
return mapper.entityToDto(nuevoEntity); ModelUzyTClasificadorPresup nuevoEntity = daoUzyTClasificadorPresup.save(entity);
return mapper.entityToDto(nuevoEntity);
} catch (Exception ex) {
throw new RuntimeException("Error al guardar el registro: " + ex.getMessage());
}
} }
@Override @Override
public DtoUzyTClasificadorPresup editar(@PathVariable Long id, DtoUzyTClasificadorPresup dtoUzyTClasificadorPresup) { public DtoUzyTClasificadorPresup editar(Long id, DtoUzyTClasificadorPresup dtoUzyTClasificadorPresup) {
if (id <= 0) {
throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
}
try { try {
ModelUzyTClasificadorPresup entity = daoUzyTClasificadorPresup.findById(id).get(); ModelUzyTClasificadorPresup entity = daoUzyTClasificadorPresup.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
if (entity != null) { if (entity != null) {
entity.setUzytclasificador_presup_nombre(dtoUzyTClasificadorPresup.getUzytclasificador_presup_nombre()); if (dtoUzyTClasificadorPresup.getUzytclasificador_presup_nombre() != null) {
entity.setUzytclasificador_presup_ejercicio(dtoUzyTClasificadorPresup.getUzytclasificador_presup_ejercicio()); entity.setUzytclasificador_presup_nombre(dtoUzyTClasificadorPresup.getUzytclasificador_presup_nombre());
entity.setUzytclasificador_presup_estado(dtoUzyTClasificadorPresup.getUzytclasificador_presup_estado()); }
if (dtoUzyTClasificadorPresup.getUzytclasificador_presup_ejercicio() != null) {
entity.setUzytclasificador_presup_ejercicio(dtoUzyTClasificadorPresup.getUzytclasificador_presup_ejercicio());
}
if (dtoUzyTClasificadorPresup.getUzytclasificador_presup_estado() != null) {
entity.setUzytclasificador_presup_estado(dtoUzyTClasificadorPresup.getUzytclasificador_presup_estado());
}
ModelUzyTClasificadorPresup updatedEntity = daoUzyTClasificadorPresup.save(entity); ModelUzyTClasificadorPresup updatedEntity = daoUzyTClasificadorPresup.save(entity);
return mapper.entityToDto(updatedEntity); return mapper.entityToDto(updatedEntity);
}else { } else {
throw new ResourceNotFoundException("No se encontró el registro con ID: " + id); throw new ResourceNotFoundException("No se encontró el registro con ID: " + id);
} }
} catch (Exception e) { } catch (Exception e) {
throw new ResourceNotFoundException("Error al editar el registro: " + e.getMessage()); throw new RuntimeException("Error al editar el registro: " + e.getMessage());
} }
} }
@Override @Override
public boolean eliminar(Long id) { public boolean eliminar(Long id) {
ModelUzyTClasificadorPresup entity = daoUzyTClasificadorPresup.findById(id).orElse(null); if (id == null || id <= 0) {
if (entity != null) { throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
daoUzyTClasificadorPresup.delete(entity); }
return true; try {
ModelUzyTClasificadorPresup entity = daoUzyTClasificadorPresup.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Registro no encontrado con ID: " + id));
if (entity != null) {
daoUzyTClasificadorPresup.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