Coverage for backend \ app \ ParametrosSistema \ services \ parametroSistemaService.py: 100.00%

40 statements  

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

1from app.ParametrosSistema.repositories.parametroSistemaRepository import ParametroSistemaRepository 

2from app.configuracionGeneral.schemasGenerales import respuestaApi 

3from fastapi import HTTPException 

4from app.ParametrosSistema.schemas.parametroSistemaSchemas import * 

5 

6class ParametroSistemaService: 

7 def __init__(self, dbSession): 

8 self.dbSession = dbSession 

9 # Usar nombre completo de atributo para consistencia con otros servicios 

10 self.parametroSistemaRepository = ParametroSistemaRepository(dbSession) 

11 

12 def listarParametros(self): 

13 parametros = self.parametroSistemaRepository.listarParametros() 

14 if not parametros: 

15 return respuestaApi(success=True, message="No se encontraron parámetros", data=[]) 

16 datos = [ParametroSistemaRespuestaSchema.from_orm(p) for p in parametros] 

17 return respuestaApi(success=True, message="Parámetros encontrados", data=datos) 

18 

19 def obtenerParametroPorId(self, idParametro: int): 

20 parametro = self.parametroSistemaRepository.obtenerPorId(idParametro) 

21 if parametro is None: 

22 raise HTTPException(status_code=404, detail="Parámetro no encontrado") 

23 parametro = ParametroSistemaRespuestaSchema.from_orm(parametro) 

24 return respuestaApi(success=True, message="Parámetro encontrado", data=parametro) 

25 

26 def crearParametro(self, parametro: ParametroSistemaCrearSchema): 

27 creado = self.parametroSistemaRepository.crearParametro(parametro) 

28 if creado is None: 

29 raise HTTPException(status_code=400, detail="La clave del parámetro ya existe") 

30 creado = ParametroSistemaRespuestaSchema.from_orm(creado) 

31 return respuestaApi(success=True, message="Parámetro creado", data=creado) 

32 

33 def modificarParametro(self, idParametro: int, parametro: ParametroSistemaActualizarSchema): 

34 actualizado = self.parametroSistemaRepository.modificarParametro(idParametro, parametro) 

35 if actualizado is False: 

36 raise HTTPException(status_code=400, detail="La clave del parámetro ya existe") 

37 if actualizado is None: 

38 raise HTTPException(status_code=404, detail="Parámetro no encontrado") 

39 actualizado = ParametroSistemaRespuestaSchema.from_orm(actualizado) 

40 return respuestaApi(success=True, message="Parámetro actualizado", data=actualizado) 

41 

42 def deshabilitarParametro(self, idParametro: int): 

43 eliminado = self.parametroSistemaRepository.deshabilitarParametro(idParametro) 

44 if eliminado is None: 

45 raise HTTPException(status_code=404, detail="Parámetro no encontrado") 

46 eliminado = ParametroSistemaRespuestaSchema.from_orm(eliminado) 

47 return respuestaApi(success=True, message="Parámetro deshabilitado", data=eliminado) 

48