Se maneja las excepciones en ServiceUzyTPlanificacion

parent dfff2539
package ec.edu.espe.movilidad.MovilidadWS.Controller; package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTCanton;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPlanificacion; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPlanificacion;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTPerfil.IServiceUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTPlanificacion.IServiceUzyTPlanificacion; import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTPlanificacion.IServiceUzyTPlanificacion;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List; import java.util.List;
import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_VERSION; import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_VERSION;
...@@ -40,20 +34,23 @@ public class UzyTPlanificacionController { ...@@ -40,20 +34,23 @@ public class UzyTPlanificacionController {
@PostMapping("/guardar") @PostMapping("/guardar")
public ResponseEntity<DtoUzyTPlanificacion> guardar(@RequestBody DtoUzyTPlanificacion dtoUzyTPlanificacion) { public ResponseEntity<DtoUzyTPlanificacion> guardar(@RequestBody DtoUzyTPlanificacion dtoUzyTPlanificacion) {
DtoUzyTPlanificacion savedDto = serviceUzyTPlanificacion.guardar(dtoUzyTPlanificacion); return new ResponseEntity<>(serviceUzyTPlanificacion.guardar(dtoUzyTPlanificacion), HttpStatus.OK);
return ResponseEntity.ok(savedDto);
} }
@PutMapping("/editar/{id}") @PutMapping("/editar/{id}")
public ResponseEntity<DtoUzyTPlanificacion> editar(@PathVariable Long id, public ResponseEntity<DtoUzyTPlanificacion> editar(@PathVariable Long id,
@RequestBody DtoUzyTPlanificacion dtoUzyTPlanificacion) { @RequestBody DtoUzyTPlanificacion dtoUzyTPlanificacion) {
DtoUzyTPlanificacion editedDto = serviceUzyTPlanificacion.editar(id, dtoUzyTPlanificacion); return new ResponseEntity<>(serviceUzyTPlanificacion.editar(id, dtoUzyTPlanificacion), HttpStatus.OK);
return ResponseEntity.ok(editedDto);
} }
@DeleteMapping("/eliminar/{id}") @DeleteMapping("/eliminar/{id}")
public ResponseEntity<Void> eliminar(@PathVariable Long id) { public ResponseEntity<String> eliminar(@PathVariable Long id) {
serviceUzyTPlanificacion.eliminar(id); boolean eliminado = serviceUzyTPlanificacion.eliminar(id);
return ResponseEntity.ok().build(); if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
} }
} }
...@@ -7,6 +7,7 @@ import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTProvincia.IServiceUzyTProvi ...@@ -7,6 +7,7 @@ import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTProvincia.IServiceUzyTProvi
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -29,27 +30,27 @@ public class UzyTProvinciaController { ...@@ -29,27 +30,27 @@ public class UzyTProvinciaController {
@GetMapping("/exampleFindId/{id}") @GetMapping("/exampleFindId/{id}")
public ResponseEntity<DtoUzyTProvincia> ListarPorID(@PathVariable String id) { public ResponseEntity<DtoUzyTProvincia> ListarPorID(@PathVariable String id) {
DtoUzyTProvincia dto = serviceUzyTProvincia.ListarPorID(id); return ResponseEntity.ok(serviceUzyTProvincia.ListarPorID(id));
return ResponseEntity.ok(dto);
} }
@GetMapping("/getAll") @GetMapping("/getAll")
public ResponseEntity<List<DtoUzyTProvincia>> ListarRegistros() { public ResponseEntity<List<DtoUzyTProvincia>> ListarRegistros() {
List<DtoUzyTProvincia> dtos = serviceUzyTProvincia.ListarRegistros(); return new ResponseEntity<>(serviceUzyTProvincia.ListarRegistros(), HttpStatus.OK);
return ResponseEntity.ok(dtos);
} }
@PostMapping("/guardar") @PostMapping("/guardar")
public ResponseEntity<DtoUzyTProvincia> guardar(@RequestBody DtoUzyTProvincia DtoUzyTProvincia) { public ResponseEntity<DtoUzyTProvincia> guardar(@RequestBody DtoUzyTProvincia DtoUzyTProvincia) {
DtoUzyTProvincia savedDto = serviceUzyTProvincia.guardar(DtoUzyTProvincia); return new ResponseEntity<>(serviceUzyTProvincia.guardar(DtoUzyTProvincia), HttpStatus.OK);
return ResponseEntity.ok(savedDto);
} }
@PutMapping("/editar/{id}") @PutMapping("/editar/{id}")
public ResponseEntity<DtoUzyTProvincia> editar(@PathVariable String id, public ResponseEntity<DtoUzyTProvincia> editar(@PathVariable String id,
@RequestBody DtoUzyTProvincia DtoUzyTProvincia) { @RequestBody DtoUzyTProvincia DtoUzyTProvincia) {
DtoUzyTProvincia editedDto = serviceUzyTProvincia.editar(id, DtoUzyTProvincia); return new ResponseEntity<>(serviceUzyTProvincia.editar(id, DtoUzyTProvincia), HttpStatus.OK);
return ResponseEntity.ok(editedDto);
} }
@DeleteMapping("/eliminar/{id}") @DeleteMapping("/eliminar/{id}")
......
...@@ -14,5 +14,5 @@ public interface IServiceUzyTPlanificacion { ...@@ -14,5 +14,5 @@ public interface IServiceUzyTPlanificacion {
DtoUzyTPlanificacion editar(Long id, DtoUzyTPlanificacion dtoUzyTPlanificacion); DtoUzyTPlanificacion editar(Long id, DtoUzyTPlanificacion dtoUzyTPlanificacion);
void eliminar(Long id); boolean eliminar(Long id);
} }
...@@ -23,26 +23,50 @@ public class ServiceUzyTPlanificacion implements IServiceUzyTPlanificacion { ...@@ -23,26 +23,50 @@ public class ServiceUzyTPlanificacion implements IServiceUzyTPlanificacion {
@Override @Override
public DtoUzyTPlanificacion ListarPorID(@PathVariable Long id) { public DtoUzyTPlanificacion ListarPorID(@PathVariable Long id) {
ModelUzyTPlanificacion entity = daoUzyTPlanificacion.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 {
ModelUzyTPlanificacion entity = daoUzyTPlanificacion.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<DtoUzyTPlanificacion> ListarRegistros() { public List<DtoUzyTPlanificacion> ListarRegistros() {
List<ModelUzyTPlanificacion> entities = daoUzyTPlanificacion.findAll(); try {
return mapper.entitiesToDtos(entities); List<ModelUzyTPlanificacion> entities = daoUzyTPlanificacion.findAll();
return mapper.entitiesToDtos(entities);
} catch (Exception ex) {
throw new RuntimeException("Error al listar los registros: " + ex.getMessage());
}
} }
@Override @Override
public DtoUzyTPlanificacion guardar(DtoUzyTPlanificacion dtoUzyTPlanificacion) { public DtoUzyTPlanificacion guardar(DtoUzyTPlanificacion dtoUzyTPlanificacion) {
ModelUzyTPlanificacion entity = mapper.dtoToEntity(dtoUzyTPlanificacion); if (dtoUzyTPlanificacion.getUzytplanificacionnombre() == null) {
ModelUzyTPlanificacion nuevoEntity = daoUzyTPlanificacion.save(entity); throw new IllegalArgumentException("El nombre de la planificación no puede ser nulo.");
return mapper.entityToDto(nuevoEntity); }
try {
ModelUzyTPlanificacion entity = mapper.dtoToEntity(dtoUzyTPlanificacion);
ModelUzyTPlanificacion nuevoEntity = daoUzyTPlanificacion.save(entity);
return mapper.entityToDto(nuevoEntity);
}
catch (Exception ex) {
throw new RuntimeException("Error al guardar el registro: " + ex.getMessage());
}
} }
@Override @Override
public DtoUzyTPlanificacion editar(Long id, DtoUzyTPlanificacion dtoUzyTPlanificacion) { public DtoUzyTPlanificacion editar(Long id, DtoUzyTPlanificacion dtoUzyTPlanificacion) {
if (id <= 0) {
throw new IllegalArgumentException("El ID del usuario debe ser válido y mayor que cero.");
}
try { try {
ModelUzyTPlanificacion entity = daoUzyTPlanificacion.findById(id) ModelUzyTPlanificacion entity = daoUzyTPlanificacion.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id)); .orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
...@@ -50,15 +74,30 @@ public class ServiceUzyTPlanificacion implements IServiceUzyTPlanificacion { ...@@ -50,15 +74,30 @@ public class ServiceUzyTPlanificacion implements IServiceUzyTPlanificacion {
entity.setUzytplanificacionNombreLargo(dtoUzyTPlanificacion.getUzytplanificacionnombre_largo()); entity.setUzytplanificacionNombreLargo(dtoUzyTPlanificacion.getUzytplanificacionnombre_largo());
ModelUzyTPlanificacion updatedEntity = daoUzyTPlanificacion.save(entity); ModelUzyTPlanificacion updatedEntity = daoUzyTPlanificacion.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 usuario -> " + ex.getMessage());
} }
} }
@Override @Override
public void eliminar(Long id) { public boolean eliminar(Long id) {
ModelUzyTPlanificacion dato = daoUzyTPlanificacion.findById(id).get(); if (id == null || id <= 0) {
throw new IllegalArgumentException("El ID del usuario debe ser válido y mayor que cero.");
}
try {
daoUzyTPlanificacion.delete(dato); ModelUzyTPlanificacion entity = daoUzyTPlanificacion.findById(id).orElseThrow(() -> new ResourceNotFoundException("Registro no encontrado con ID: " + id));
if (entity != null) {
daoUzyTPlanificacion.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