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
« 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 *
6class ClienteService:
7 def __init__(self, dbSession):
8 self.dbSession = dbSession
9 self.clienteRepository = ClienteRepository(dbSession)
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)
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)
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)
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)
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)