Se maneja el control de excepciones en ServiceUzyTMenu

parent 4682afe6
...@@ -2,7 +2,6 @@ package ec.edu.espe.movilidad.MovilidadWS.Controller; ...@@ -2,7 +2,6 @@ package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTMenu; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTMenu;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTMenu.IServiceUzyTMenu; import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTMenu.IServiceUzyTMenu;
import javassist.NotFoundException;
import org.springframework.beans.factory.annotation.Autowired; 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;
...@@ -24,13 +23,8 @@ public class UzyTMenuController { ...@@ -24,13 +23,8 @@ public class UzyTMenuController {
} }
@GetMapping("/exampleFindId/{id}") @GetMapping("/exampleFindId/{id}")
public ResponseEntity<DtoUzyTMenu> ListarPorID(@PathVariable Long id) { public DtoUzyTMenu ListarPorID(@PathVariable Long id) {
try { return serviceUzyTMenu.ListarPorID(id);
DtoUzyTMenu uzyTMenu = serviceUzyTMenu.ListarPorID(id);
return ResponseEntity.ok(uzyTMenu);
} catch (NotFoundException e) {
return ResponseEntity.notFound().build();
}
} }
@GetMapping("/getAll") @GetMapping("/getAll")
...@@ -46,13 +40,8 @@ public class UzyTMenuController { ...@@ -46,13 +40,8 @@ public class UzyTMenuController {
} }
@PutMapping("/editar/{id}") @PutMapping("/editar/{id}")
public ResponseEntity<DtoUzyTMenu> editar(@PathVariable Long id, @RequestBody DtoUzyTMenu dtoUzyTMenu) { public DtoUzyTMenu editar(@PathVariable Long id, @RequestBody DtoUzyTMenu dtoUzyTMenu) {
try { return serviceUzyTMenu.editar(id, dtoUzyTMenu);
DtoUzyTMenu updatedUzyTMenu = serviceUzyTMenu.editar(id, dtoUzyTMenu);
return ResponseEntity.ok(updatedUzyTMenu);
} catch (NotFoundException e) {
return ResponseEntity.notFound().build();
}
} }
......
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTMenu; package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTMenu;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTMenu; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTMenu;
import javassist.NotFoundException;
import java.util.List; import java.util.List;
public interface IServiceUzyTMenu { public interface IServiceUzyTMenu {
DtoUzyTMenu ListarPorID(Long id) throws NotFoundException; DtoUzyTMenu ListarPorID(Long id);
List<DtoUzyTMenu> ListarRegistros(); List<DtoUzyTMenu> ListarRegistros();
DtoUzyTMenu guardar(DtoUzyTMenu dtoUzyTMenu); DtoUzyTMenu guardar(DtoUzyTMenu dtoUzyTMenu);
DtoUzyTMenu editar(Long id, DtoUzyTMenu dtoUzyTMenu) throws NotFoundException; DtoUzyTMenu editar(Long id, DtoUzyTMenu dtoUzyTMenu);
boolean eliminar(Long id); boolean eliminar(Long id);
} }
...@@ -2,13 +2,12 @@ package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTMenu; ...@@ -2,13 +2,12 @@ package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTMenu;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTMenu; import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTMenu;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTMenu; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTMenu;
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.UzyTMenuMapper; import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTMenuMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTMenu; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTMenu;
import javassist.NotFoundException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Optional;
@Service @Service
public class ServiceUzyTMenu implements IServiceUzyTMenu { public class ServiceUzyTMenu implements IServiceUzyTMenu {
...@@ -21,52 +20,81 @@ public class ServiceUzyTMenu implements IServiceUzyTMenu { ...@@ -21,52 +20,81 @@ public class ServiceUzyTMenu implements IServiceUzyTMenu {
} }
@Override @Override
public DtoUzyTMenu ListarPorID(Long id) throws NotFoundException { public DtoUzyTMenu ListarPorID(Long id) {
Optional<ModelUzyTMenu> optionalEntity = daoUzyTMenu.findById(id); if (id <= 0) {
if (optionalEntity.isPresent()) { throw new InvalidArgumentException("El parámetro 'id' debe ser un valor positivo.");
ModelUzyTMenu entity = optionalEntity.get(); }
try {
ModelUzyTMenu entity = daoUzyTMenu.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
return uzyTMenuMapper.entityToDto(entity); return uzyTMenuMapper.entityToDto(entity);
} else { } catch (ResourceNotFoundException ex) {
throw new NotFoundException("Uzytmenu not found"); 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<DtoUzyTMenu> ListarRegistros() { public List<DtoUzyTMenu> ListarRegistros() {
List<ModelUzyTMenu> entities = daoUzyTMenu.findAll(); try {
return uzyTMenuMapper.entitiesToDtos(entities); List<ModelUzyTMenu> entities = daoUzyTMenu.findAll();
return uzyTMenuMapper.entitiesToDtos(entities);
} catch (Exception ex) {
throw new RuntimeException("Error al listar registros de menú: " + ex.getMessage());
}
} }
@Override @Override
public DtoUzyTMenu guardar(DtoUzyTMenu dtoUzyTMenu) { public DtoUzyTMenu guardar(DtoUzyTMenu dtoUzyTMenu) {
ModelUzyTMenu entity = uzyTMenuMapper.dtoToEntity(dtoUzyTMenu); try {
ModelUzyTMenu savedEntity = daoUzyTMenu.save(entity); ModelUzyTMenu entity = uzyTMenuMapper.dtoToEntity(dtoUzyTMenu);
return uzyTMenuMapper.entityToDto(savedEntity); ModelUzyTMenu savedEntity = daoUzyTMenu.save(entity);
return uzyTMenuMapper.entityToDto(savedEntity);
} catch (Exception ex) {
throw new RuntimeException("Error al guardar el registro: " + ex.getMessage());
}
} }
@Override @Override
public DtoUzyTMenu editar(Long id, DtoUzyTMenu dtoUzyTMenu) throws NotFoundException { public DtoUzyTMenu editar(Long id, DtoUzyTMenu dtoUzyTMenu) {
Optional<ModelUzyTMenu> optionalEntity = daoUzyTMenu.findById(id); if (id <= 0) {
if (optionalEntity.isPresent()) { throw new InvalidArgumentException("El ID del menú debe ser válido y mayor que cero.");
ModelUzyTMenu entity = optionalEntity.get(); }
// Actualizar los campos de la entidad con los valores del DTO try {
entity.setUzytmenuNombre(dtoUzyTMenu.getUzytmenuNombre()); ModelUzyTMenu entity = daoUzyTMenu.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Registro no encontrado con ID: " + id));
if (dtoUzyTMenu.getUzytmenuNombre() != null) {
// Actualizar los campos de la entidad con los valores del DTO
entity.setUzytmenuNombre(dtoUzyTMenu.getUzytmenuNombre());
}
ModelUzyTMenu updatedEntity = daoUzyTMenu.save(entity); ModelUzyTMenu updatedEntity = daoUzyTMenu.save(entity);
return uzyTMenuMapper.entityToDto(updatedEntity); return uzyTMenuMapper.entityToDto(updatedEntity);
} else { } catch (ResourceNotFoundException ex) {
throw new NotFoundException("Uzytmenu not found"); throw ex;
} catch (Exception ex) {
throw new RuntimeException("Error al editar el registro -> " + ex.getMessage());
} }
} }
@Override @Override
public boolean eliminar(Long id) { public boolean eliminar(Long id) {
ModelUzyTMenu entity = daoUzyTMenu.findById(id).orElse(null); if (id == null || id <= 0) {
if (entity != null) { throw new InvalidArgumentException("El ID del registro debe ser válido y mayor que cero.");
daoUzyTMenu.delete(entity); }
return true; try {
ModelUzyTMenu entity = daoUzyTMenu.findById(id).orElseThrow(() -> new ResourceNotFoundException("Registro no encontrado con ID: " + id));
if (entity != null) {
daoUzyTMenu.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