Se maneja el control de excepciones en ServiceUzyTClasificadorPresup

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