Se maneja el control de excepciones en ServiceUzyTavZonaDetalle

parent 7f8d3adb
...@@ -61,9 +61,13 @@ public class UzyTavZonaDetalleController { ...@@ -61,9 +61,13 @@ public class UzyTavZonaDetalleController {
} }
@DeleteMapping("/eliminar/{id}") @DeleteMapping("/eliminar/{id}")
public ResponseEntity<Void> eliminar(@PathVariable Long id) { public ResponseEntity<String> eliminar(@PathVariable Long id) {
serviceUzyTavZonaDetalle.eliminar(id); boolean eliminado = serviceUzyTavZonaDetalle.eliminar(id);
return ResponseEntity.ok().build(); if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
} }
} }
...@@ -9,7 +9,6 @@ import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTProvinciaMa ...@@ -9,7 +9,6 @@ import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTProvinciaMa
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTCanton; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTCanton;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTProvincia; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTProvincia;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List; import java.util.List;
...@@ -27,7 +26,7 @@ public class ServiceUzyTCanton implements IServiceUzyTCanton { ...@@ -27,7 +26,7 @@ public class ServiceUzyTCanton implements IServiceUzyTCanton {
} }
@Override @Override
public DtoUzyTCanton ListarPorID(@PathVariable String id) { public DtoUzyTCanton ListarPorID(String id) {
try { try {
ModelUzyTCanton entity = daoUzyTCanton.findById(id) ModelUzyTCanton entity = daoUzyTCanton.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id)); .orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
......
...@@ -5,7 +5,6 @@ import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException; ...@@ -5,7 +5,6 @@ import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTCatalogosGeneralesMapper; import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTCatalogosGeneralesMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTCatalogosGenerales; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTCatalogosGenerales;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List; import java.util.List;
@Service @Service
...@@ -20,7 +19,7 @@ public class ServiceUzyTCatalogosGenerales implements IServiceUzyTCatalogosGener ...@@ -20,7 +19,7 @@ public class ServiceUzyTCatalogosGenerales implements IServiceUzyTCatalogosGener
} }
@Override @Override
public DtoUzyTCatalogosGenerales ListarPorID(@PathVariable Long id) { public DtoUzyTCatalogosGenerales ListarPorID(Long id) {
if (id <= 0) { if (id <= 0) {
throw new IllegalArgumentException("El parámetro 'id' debe ser un valor positivo."); throw new IllegalArgumentException("El parámetro 'id' debe ser un valor positivo.");
} }
......
...@@ -6,7 +6,7 @@ import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException; ...@@ -6,7 +6,7 @@ import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTClasificadorPresupMapper; import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTClasificadorPresupMapper;
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 java.util.List; import java.util.List;
@Service @Service
...@@ -21,7 +21,7 @@ public class ServiceUzyTClasificadorPresup implements IServiceUzyTClasificadorPr ...@@ -21,7 +21,7 @@ public class ServiceUzyTClasificadorPresup implements IServiceUzyTClasificadorPr
} }
@Override @Override
public DtoUzyTClasificadorPresup ListarPorID(@PathVariable Long id) { public DtoUzyTClasificadorPresup ListarPorID(Long id) {
if (id <= 0) { if (id <= 0) {
throw new IllegalArgumentException("El parámetro 'id' debe ser un valor positivo."); throw new IllegalArgumentException("El parámetro 'id' debe ser un valor positivo.");
} }
......
...@@ -20,6 +20,6 @@ public interface IServiceUzyTavZonaDetalle { ...@@ -20,6 +20,6 @@ public interface IServiceUzyTavZonaDetalle {
DtoUzyTavZonaDetalle editar(Long id, DtoUzyTavZonaDetalle dtoUzyTavZonaDetalle); DtoUzyTavZonaDetalle editar(Long id, DtoUzyTavZonaDetalle dtoUzyTavZonaDetalle);
void eliminar(Long id); boolean eliminar(Long id);
} }
...@@ -7,7 +7,6 @@ import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException; ...@@ -7,7 +7,6 @@ import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavZonaDetalleMapper; import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavZonaDetalleMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavZonaDetalle; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavZonaDetalle;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List; import java.util.List;
...@@ -26,45 +25,80 @@ public class ServiceUzyTavZonaDetalle implements IServiceUzyTavZonaDetalle { ...@@ -26,45 +25,80 @@ public class ServiceUzyTavZonaDetalle implements IServiceUzyTavZonaDetalle {
} }
@Override @Override
public DtoUzyTavZonaDetalle ListarPorID(@PathVariable Long id) { public DtoUzyTavZonaDetalle ListarPorID(Long id) {
ModelUzyTavZonaDetalle entity = daoUzyTavZonaDetalle.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 {
ModelUzyTavZonaDetalle entity = daoUzyTavZonaDetalle.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<DtoUzyTavZonaDetalle> ListarRegistros() { public List<DtoUzyTavZonaDetalle> ListarRegistros() {
List<ModelUzyTavZonaDetalle> entities = daoUzyTavZonaDetalle.findAll(); try {
return mapper.entitiesToDtos(entities); List<ModelUzyTavZonaDetalle> entities = daoUzyTavZonaDetalle.findAll();
return mapper.entitiesToDtos(entities);
} catch (Exception ex) {
throw new RuntimeException("Error al listar los registros: " + ex.getMessage());
}
} }
@Override @Override
public List<DtoUzyTavZonaDetalle> ListarRegistrosRelacionadosConPrograma(Long programaId) { public List<DtoUzyTavZonaDetalle> ListarRegistrosRelacionadosConPrograma(Long programaId) {
List<ModelUzyTavZonaDetalle> entities = daoUzyTavZonaDetalle.obtenerZonaDetallePorPrograma(programaId); if (programaId <= 0) {
return mapper.entitiesToDtos(entities); throw new IllegalArgumentException("El parámetro 'id' debe ser un valor positivo.");
}
try {
List<ModelUzyTavZonaDetalle> entities = daoUzyTavZonaDetalle.obtenerZonaDetallePorPrograma(programaId);
return mapper.entitiesToDtos(entities);
} catch (Exception ex) {
throw new RuntimeException("Error al listar los registros: " + ex.getMessage());
}
} }
@Override @Override
public List<DtoUzyTavZonaDetalle> ListarRegistrosRelacionadosConProyec(Long proyecID) { public List<DtoUzyTavZonaDetalle> ListarRegistrosRelacionadosConProyec(Long proyecID) {
List<ModelUzyTavZonaDetalle> entities = daoUzyTavZonaDetalle.obtenerZonaDetallePorProyec(proyecID); if (proyecID <= 0) {
return mapper.entitiesToDtos(entities); throw new IllegalArgumentException("El parámetro 'id' debe ser un valor positivo.");
}
try {
List<ModelUzyTavZonaDetalle> entities = daoUzyTavZonaDetalle.obtenerZonaDetallePorProyec(proyecID);
return mapper.entitiesToDtos(entities);
} catch (Exception ex) {
throw new RuntimeException("Error al listar los registros: " + ex.getMessage());
}
} }
@Override @Override
public DtoUzyTavZonaDetalle guardar(DtoUzyTavZonaDetalle dtoUzyTavZonaDetalle) { public DtoUzyTavZonaDetalle guardar(DtoUzyTavZonaDetalle dtoUzyTavZonaDetalle) {
ModelUzyTavZonaDetalle entity = mapper.dtoToEntity(dtoUzyTavZonaDetalle); try {
ModelUzyTavZonaDetalle nuevoEntity = daoUzyTavZonaDetalle.save(entity); ModelUzyTavZonaDetalle entity = mapper.dtoToEntity(dtoUzyTavZonaDetalle);
return mapper.entityToDto(nuevoEntity); ModelUzyTavZonaDetalle nuevoEntity = daoUzyTavZonaDetalle.save(entity);
return mapper.entityToDto(nuevoEntity);
}
catch (Exception ex) {
throw new RuntimeException("Error al guardar el registro: " + ex.getMessage());
}
} }
@Override @Override
public DtoUzyTavZonaDetalle editar(Long id, DtoUzyTavZonaDetalle dtoUzyTavZonaDetalle) { public DtoUzyTavZonaDetalle editar(Long id, DtoUzyTavZonaDetalle dtoUzyTavZonaDetalle) {
if (id <= 0) {
throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
}
try { try {
ModelUzyTavZonaDetalle entity = daoUzyTavZonaDetalle.findById(id).get(); ModelUzyTavZonaDetalle entity = daoUzyTavZonaDetalle.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
entity.setUzytavzona_detalle_id(dtoUzyTavZonaDetalle.getUzytavzona_detalle_id());
entity.setUzytavzona_objetivos(dtoUzyTavZonaDetalle.getUzytavzona_objetivos()); entity.setUzytavzona_objetivos(dtoUzyTavZonaDetalle.getUzytavzona_objetivos());
ModelUzyTavZonaDetalle updatedEntity = daoUzyTavZonaDetalle.save(entity); ModelUzyTavZonaDetalle updatedEntity = daoUzyTavZonaDetalle.save(entity);
...@@ -75,8 +109,22 @@ public class ServiceUzyTavZonaDetalle implements IServiceUzyTavZonaDetalle { ...@@ -75,8 +109,22 @@ public class ServiceUzyTavZonaDetalle implements IServiceUzyTavZonaDetalle {
} }
@Override @Override
public void eliminar(Long id) { public boolean eliminar(Long id) {
ModelUzyTavZonaDetalle dato = daoUzyTavZonaDetalle.findById(id).get(); if (id == null || id <= 0) {
daoUzyTavZonaDetalle.delete(dato); throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
}
try {
ModelUzyTavZonaDetalle entity = daoUzyTavZonaDetalle.findById(id).orElseThrow(() -> new ResourceNotFoundException("Registro no encontrado con ID: " + id));
if (entity != null) {
daoUzyTavZonaDetalle.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