Se manejan las excepciones de ServiceUzyTPerfilUsuario

parent d379090f
......@@ -3,6 +3,7 @@ package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTPerfilUsuario;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTPerfil;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTUsuario;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUsuarioConPerfiles;
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.UzyTPerfilMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfil;
......@@ -12,12 +13,7 @@ import org.springframework.stereotype.Service;
@Service
public class ServiceUzyTPerfilUsuario implements IServiceUzyTPerfilUsuario {
private final DaoUzyTUsuario daoUzyTUsuario;
private final UzyTPerfilMapper mapperPerfil;
private final DaoUzyTPerfil daoUzyTPerfil;
public ServiceUzyTPerfilUsuario(DaoUzyTUsuario daoUzyTUsuario, UzyTPerfilMapper mapperPerfil, DaoUzyTPerfil daoUzyTPerfil) {
......@@ -29,22 +25,33 @@ public class ServiceUzyTPerfilUsuario implements IServiceUzyTPerfilUsuario {
@Override
public DtoUsuarioConPerfiles asignarPerfilAUsuario(Long uzytusuarioId, Long uzytperfilId) {
ModelUzyTUsuario usuario = daoUzyTUsuario.findById(uzytusuarioId)
.orElseThrow(() -> new ResourceNotFoundException("Usuario no encontrado con ID: " + uzytusuarioId));
ModelUzyTPerfil perfil = daoUzyTPerfil.findById(uzytperfilId)
.orElseThrow(() -> new ResourceNotFoundException("Perfil no encontrado con ID: " + uzytperfilId));
// Aquí asignas el perfil al usuario
usuario.getUzytperfils().add(perfil);
daoUzyTUsuario.save(usuario);
// Creas un objeto DtoUsuarioConPerfiles para asignar sus valores a los campos
DtoUsuarioConPerfiles dtoUsuarioConPerfiles = new DtoUsuarioConPerfiles();
dtoUsuarioConPerfiles.setUzytusuario_id(usuario.getUzytusuario_id());
dtoUsuarioConPerfiles.setUzytusuario_nombres(usuario.getUzytusuario_nombres());
dtoUsuarioConPerfiles.setPerfiles(mapperPerfil.entitiesToDtosSet(usuario.getUzytperfils()));
return dtoUsuarioConPerfiles;
if (uzytusuarioId <= 0 || uzytperfilId <= 0) {
throw new InvalidArgumentException("Se debe ingresar un ID válido y mayor que cero.");
}
try {
ModelUzyTUsuario usuario = daoUzyTUsuario.findById(uzytusuarioId)
.orElseThrow(() -> new ResourceNotFoundException("Usuario no encontrado con ID: " + uzytusuarioId));
ModelUzyTPerfil perfil = daoUzyTPerfil.findById(uzytperfilId)
.orElseThrow(() -> new ResourceNotFoundException("Perfil no encontrado con ID: " + uzytperfilId));
if (usuario.getUzytperfils().contains(perfil)) {
throw new InvalidArgumentException("El perfil ya está asignado al usuario.");
}
// Aquí asignas el perfil al usuario
usuario.getUzytperfils().add(perfil);
daoUzyTUsuario.save(usuario);
DtoUsuarioConPerfiles dtoUsuarioConPerfiles = new DtoUsuarioConPerfiles();
dtoUsuarioConPerfiles.setUzytusuario_id(usuario.getUzytusuario_id());
dtoUsuarioConPerfiles.setUzytusuario_nombres(usuario.getUzytusuario_nombres());
dtoUsuarioConPerfiles.setPerfiles(mapperPerfil.entitiesToDtosSet(usuario.getUzytperfils()));
return dtoUsuarioConPerfiles;
} catch (InvalidArgumentException | ResourceNotFoundException ex) {
throw ex;
} catch (Exception ex) {
throw new RuntimeException("Error al asignar perfil al usuario: " + 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