From f5e67ef15bd120f3dd743fb2260c934c43c5aedb Mon Sep 17 00:00:00 2001 From: Kenio de Souza Date: Fri, 17 Oct 2025 11:21:28 -0300 Subject: [PATCH] =?UTF-8?q?Cria=C3=A7=C3=A3o=20dos=20endpoint's=20da=20tab?= =?UTF-8?q?ela=20client?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actions/client/client_get_cns_action.py | 13 ++++++++++ .../client/client_get_cns_repository.py | 18 +++++++++++++ .../services/client/client_get_cns_service.py | 26 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 packages/v1/administrativo/actions/client/client_get_cns_action.py create mode 100644 packages/v1/administrativo/repositories/client/client_get_cns_repository.py create mode 100644 packages/v1/administrativo/services/client/client_get_cns_service.py diff --git a/packages/v1/administrativo/actions/client/client_get_cns_action.py b/packages/v1/administrativo/actions/client/client_get_cns_action.py new file mode 100644 index 0000000..e177da1 --- /dev/null +++ b/packages/v1/administrativo/actions/client/client_get_cns_action.py @@ -0,0 +1,13 @@ +from abstracts.action import BaseAction +from packages.v1.administrativo.schemas.client_schema import ClientCNSSchema +from packages.v1.administrativo.repositories.client.client_get_cns_repository import GetCNSRepository + +class GetCNSAction(BaseAction): + + def execute(self, client_schema = ClientCNSSchema): + + # Importação do repositório + get_cns_repository = GetCNSRepository() + + # Execução do repositório + return get_cns_repository.execute(client_schema) diff --git a/packages/v1/administrativo/repositories/client/client_get_cns_repository.py b/packages/v1/administrativo/repositories/client/client_get_cns_repository.py new file mode 100644 index 0000000..a0b0d31 --- /dev/null +++ b/packages/v1/administrativo/repositories/client/client_get_cns_repository.py @@ -0,0 +1,18 @@ +from abstracts.repository import BaseRepository + +from packages.v1.administrativo.schemas.client_schema import ClientCNSSchema, ClientSchema + +class GetCNSRepository(BaseRepository): + + def execute(self, client_schema = ClientCNSSchema)-> ClientSchema: + + # Define a consulta sql + sql = """ SELECT * FROM client c WHERE c.cns = :cns """ + + # Preenchimento dos parâmetros SQL + params = { + 'cns': client_schema.cns + } + + # Execução da instrução sql + return self.fetch_one(sql, params) \ No newline at end of file diff --git a/packages/v1/administrativo/services/client/client_get_cns_service.py b/packages/v1/administrativo/services/client/client_get_cns_service.py new file mode 100644 index 0000000..e624929 --- /dev/null +++ b/packages/v1/administrativo/services/client/client_get_cns_service.py @@ -0,0 +1,26 @@ +from fastapi import HTTPException, status + +from packages.v1.administrativo.schemas.client_schema import ClientCNSSchema +from packages.v1.administrativo.actions.client.client_get_cns_action import GetCNSAction + +class GetCNSService: + + def execute(self, client_schema: ClientCNSSchema, messageValidate: bool): + + # Instânciamento de ação + cns_action = GetCNSAction() + + # Executa a ação em questão + data = cns_action.execute(client_schema) + + if messageValidate: + + if not data: + # Retorna uma exceção + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail='Não foi possível localizar o CNS do cliente' + ) + + # Retorno da informação + return data \ No newline at end of file