Coverage for backend \ app \ Clientes \ services \ clienteService.py: 100.00%

38 statements  

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

1from app.Clientes.repositories.clienteRepository import ClienteRepository 

2from app.configuracionGeneral.schemasGenerales import respuestaApi 

3from fastapi import HTTPException 

4from app.Clientes.schemas.clienteSchemas import * 

5 

6class ClienteService: 

7 def __init__(self, dbSession): 

8 self.dbSession = dbSession 

9 self.clienteRepository = ClienteRepository(dbSession) 

10 

11 def listarClientes(self): 

12 clientes = self.clienteRepository.listarClientes() 

13 if clientes is None: 

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

15 clientes = [ClienteRespuestaSchema.from_orm(c) for c in clientes] 

16 return respuestaApi(success=True, message="Clientes encontrados", data=clientes) 

17 

18 def obtenerPorId(self, idCliente: int): 

19 cliente = self.clienteRepository.obtenerPorId(idCliente) 

20 if not cliente: 

21 raise HTTPException(status_code=404, detail="Cliente no encontrado") 

22 cliente = ClienteRespuestaSchema.from_orm(cliente) 

23 return respuestaApi(success=True, message="Cliente encontrado", data=cliente) 

24 

25 def crearCliente(self, cliente: ClienteCrearSchema): 

26 nuevo = self.clienteRepository.crearCliente(cliente) 

27 if nuevo is None: 

28 raise HTTPException(status_code=400, detail="La cédula ya está registrada") 

29 nuevo = ClienteRespuestaSchema.from_orm(nuevo) 

30 return respuestaApi(success=True, message="Cliente creado", data=nuevo) 

31 

32 def modificarCliente(self, idCliente: int, cliente: ClienteActualizarSchema): 

33 actualizado = self.clienteRepository.modificarCliente(idCliente, cliente) 

34 if actualizado is None: 

35 raise HTTPException(status_code=404, detail="Cliente no encontrado") 

36 actualizado = ClienteRespuestaSchema.from_orm(actualizado) 

37 return respuestaApi(success=True, message="Cliente actualizado", data=actualizado) 

38 

39 def deshabilitarCliente(self, idCliente: int): 

40 des = self.clienteRepository.deshabilitarCliente(idCliente) 

41 if des is None: 

42 raise HTTPException(status_code=404, detail="Cliente no encontrado") 

43 des = ClienteRespuestaSchema.from_orm(des) 

44 return respuestaApi(success=True, message="Cliente deshabilitado", data=des)