Coverage for backend \ app \ Usuarios \ services \ usuarioService.py: 100.00%

49 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2025-12-29 16:13 -0500

1from app.Usuarios.repositories.usuarioRepository import UsuarioRepository 

2from app.configuracionGeneral.schemasGenerales import respuestaApi 

3from fastapi import HTTPException 

4from app.Usuarios.schemas.usuarioSchemas import * 

5 

6class UsuarioService: 

7 def __init__(self, dbSession): 

8 self.dbSession = dbSession 

9 self.usuarioRepository = UsuarioRepository(dbSession) 

10 

11 

12 def validarCredenciales(self, cedula, password): 

13 print(cedula, password) 

14 usuario=self.usuarioRepository.validarCredenciales(cedula, password) 

15 print(usuario) 

16 if usuario is None: 

17 raise HTTPException(status_code=401, detail="Credenciales incorrectas") 

18 

19 usuario=UsuarioRespuestaSchema.from_orm(usuario).model_dump() 

20 

21 

22 if usuario["activoUsuario"] == False: 

23 raise HTTPException(status_code=403, detail="El usuario esta deshabilitado") 

24 #devolver el idUsuario, cedula, nombreCompleto, idRol y rol como diccionario para el JWT 

25 usuario={ 

26 "idUsuario": usuario["idUsuario"], 

27 "cedula": usuario["cedulaUsuario"], 

28 "nombreCompleto": usuario["nombreCompleto"], 

29 "idRol": usuario["rol"]["idRol"], 

30 "rol": usuario["rol"]["nombreRol"] 

31 } 

32 

33 return usuario 

34 

35 def listarUsuarios(self): 

36 usuarios=self.usuarioRepository.listarUsuarios() 

37 if usuarios is None: 

38 return respuestaApi(success=True, message="No se encontraron usuarios", data=[]) 

39 usuarios=[UsuarioRespuestaSchema.from_orm(usuario) for usuario in usuarios] 

40 return respuestaApi(success=True, message="Usuarios encontrados", data=usuarios) 

41 

42 def obtenerPorId(self, idUsuario: int): 

43 usuario=self.usuarioRepository.obtenerUsuarioPorId(idUsuario) 

44 if usuario is None: 

45 raise HTTPException(status_code=404, detail="Usuario no encontrado") 

46 usuario=UsuarioRespuestaSchema.from_orm(usuario) 

47 return respuestaApi(success=True, message="Usuario encontrado", data=usuario) 

48 

49 def crearUsuario(self, usuario: UsuarioCrearSchema): 

50 usuarioCreado=self.usuarioRepository.crearUsuario(usuario) 

51 if usuarioCreado is None: 

52 raise HTTPException(status_code=400, detail="La cedula ya esta registrada") 

53 

54 usuarioCreado=UsuarioRespuestaSchema.from_orm(usuarioCreado) 

55 

56 return respuestaApi(success=True, message="Usuario creado", data=usuarioCreado) 

57 

58 def modificarUsuario(self, idUsuario: int, usuario: UsuarioActualizarSchema): 

59 usuarioActualizado=self.usuarioRepository.modificarUsuario(idUsuario, usuario) 

60 if usuarioActualizado is None: 

61 raise HTTPException(status_code=404, detail="Usuario no encontrado") 

62 usuarioActualizado=UsuarioRespuestaSchema.from_orm(usuarioActualizado) 

63 return respuestaApi(success=True, message="Usuario actualizado", data=usuarioActualizado) 

64 

65 def deshabilitarUsuario(self, idUsuario: int): 

66 usuarioDeshabilitado=self.usuarioRepository.deshabilitarUsuario(idUsuario) 

67 if usuarioDeshabilitado is None: 

68 raise HTTPException(status_code=404, detail="Usuario no encontrado") 

69 usuarioDeshabilitado=UsuarioRespuestaSchema.from_orm(usuarioDeshabilitado) 

70 return respuestaApi(success=True, message="Usuario deshabilitado", data=usuarioDeshabilitado) 

71 

72 

73 

74 

75 

76