Criação dos endpoint's da tabela client
This commit is contained in:
parent
a82d9405b6
commit
5a10ab79b7
16 changed files with 38 additions and 38 deletions
|
|
@ -1,8 +1,8 @@
|
|||
from packages.v1.administrativo.schemas.client_schema import ClientIdSchema
|
||||
from packages.v1.administrativo.repositories.client.client_delete_repository import ClientDeleteRepository
|
||||
from packages.v1.administrativo.repositories.client.client_delete_repository import DeleteRepository
|
||||
|
||||
|
||||
class ClientDeleteAction:
|
||||
class DeleteAction:
|
||||
"""
|
||||
Action para a exclusão de um registro na tabela 'client'.
|
||||
Utiliza o schema com o ID do cliente e delega a operação ao repositório.
|
||||
|
|
@ -19,7 +19,7 @@ class ClientDeleteAction:
|
|||
:return: Resultado da operação de exclusão do repositório.
|
||||
"""
|
||||
# Instancia o repositório específico para a exclusão de clientes
|
||||
delete_repository = ClientDeleteRepository()
|
||||
delete_repository = DeleteRepository()
|
||||
|
||||
# Chama o método execute do repositório, passando o schema do cliente
|
||||
return delete_repository.execute(client_schema)
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
from abstracts.action import BaseAction
|
||||
# O repositório deve ser adaptado para a listagem (indexação) da tabela 'client'
|
||||
from packages.v1.administrativo.repositories.client.client_index_repository import ClientIndexRepository
|
||||
from packages.v1.administrativo.repositories.client.client_index_repository import IndexRepository
|
||||
from typing import Tuple, List, Dict, Any
|
||||
|
||||
|
||||
class ClientIndexAction(BaseAction):
|
||||
class IndexAction(BaseAction):
|
||||
"""
|
||||
Action responsável por orquestrar a listagem (indexação) de todos
|
||||
os registros da tabela 'client' com suporte a paginação.
|
||||
|
|
@ -20,8 +20,8 @@ class ClientIndexAction(BaseAction):
|
|||
:return: Tupla com a lista de clientes e o total de registros.
|
||||
"""
|
||||
# Instânciamento do repositório de indexação (listagem) de clientes
|
||||
# Supondo que ClientIndexRepository é onde a lógica de acesso ao BD está (SELECT * FROM client LIMIT first OFFSET skip)
|
||||
client_index_repository = ClientIndexRepository()
|
||||
# Supondo que IndexRepository é onde a lógica de acesso ao BD está (SELECT * FROM client LIMIT first OFFSET skip)
|
||||
client_index_repository = IndexRepository()
|
||||
|
||||
# Execução do repositório para buscar os clientes com paginação
|
||||
# A resposta (response) conteria os campos da DDL: client_id, cns, name, date_register, state, city, responsible, consultant, type_contract
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
from packages.v1.administrativo.schemas.client_schema import ClientSaveSchema
|
||||
from packages.v1.administrativo.repositories.client.client_save_repository import ClientSaveRepository
|
||||
from packages.v1.administrativo.repositories.client.client_save_repository import SaveRepository
|
||||
|
||||
|
||||
class ClientSaveAction:
|
||||
class SaveAction:
|
||||
"""
|
||||
Action responsável por orquestrar a operação de salvar (inserir ou atualizar)
|
||||
um registro na tabela 'client'.
|
||||
|
|
@ -21,7 +21,7 @@ class ClientSaveAction:
|
|||
:return: Resultado da operação de salvamento do repositório.
|
||||
"""
|
||||
# Instancia o repositório específico para a operação de salvar clientes
|
||||
save_repository = ClientSaveRepository()
|
||||
save_repository = SaveRepository()
|
||||
|
||||
# Chama o método execute do repositório, passando o objeto schema
|
||||
return save_repository.execute(client_schema)
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
from abstracts.action import BaseAction
|
||||
from packages.v1.administrativo.schemas.client_schema import ClientSchema
|
||||
from packages.v1.administrativo.repositories.client.client_show_repository import ClientShowRepository
|
||||
from packages.v1.administrativo.repositories.client.client_show_repository import ShowRepository
|
||||
|
||||
|
||||
class ClientShowAction(BaseAction):
|
||||
class ShowAction(BaseAction):
|
||||
"""
|
||||
Action responsável por orquestrar a visualização (show) de um registro
|
||||
único na tabela 'client', geralmente utilizando o 'client_id'.
|
||||
|
|
@ -22,7 +22,7 @@ class ClientShowAction(BaseAction):
|
|||
:return: O registro de cliente encontrado ou None/erro.
|
||||
"""
|
||||
# Instânciamento do repositório de visualização (show)
|
||||
show_repository = ClientShowRepository()
|
||||
show_repository = ShowRepository()
|
||||
|
||||
# Execução do repositório
|
||||
response = show_repository.execute(client_schema)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
from packages.v1.administrativo.schemas.client_schema import ClientUpdateSchema
|
||||
from packages.v1.administrativo.repositories.client.client_update_repository import ClientUpdateRepository
|
||||
from packages.v1.administrativo.repositories.client.client_update_repository import UpdateRepository
|
||||
|
||||
|
||||
class ClientUpdateAction:
|
||||
class UpdateAction:
|
||||
"""
|
||||
Action responsável por orquestrar a operação de atualização (UPDATE)
|
||||
de um registro na tabela 'client', identificado pelo seu ID.
|
||||
|
|
@ -22,7 +22,7 @@ class ClientUpdateAction:
|
|||
:return: Resultado da operação de atualização do repositório.
|
||||
"""
|
||||
# Instancia o repositório específico para a operação de atualização de clientes
|
||||
update_repository = ClientUpdateRepository()
|
||||
update_repository = UpdateRepository()
|
||||
|
||||
# Chama o método execute do repositório, passando o ID e o objeto schema
|
||||
return update_repository.execute(client_id, client_schema)
|
||||
|
|
@ -106,7 +106,7 @@ class ClientController:
|
|||
def save(self, client_schema: ClientSaveSchema):
|
||||
|
||||
#Importação da classe desejada
|
||||
save_service = self.dynamic_import.service('client_save_service', 'ClientSaveService')
|
||||
save_service = self.dynamic_import.service('client_save_service', 'SaveService')
|
||||
|
||||
# Instânciamento da classe desejada
|
||||
self.save_service = save_service()
|
||||
|
|
@ -121,7 +121,7 @@ class ClientController:
|
|||
def update(self, client_id: int, client_schema: ClientUpdateSchema):
|
||||
|
||||
#Importação da classe desejada
|
||||
update_service = self.dynamic_import.service('client_update_service', 'ClientUpdateService')
|
||||
update_service = self.dynamic_import.service('client_update_service', 'UpdateService')
|
||||
|
||||
# Instânciamento da classe desejada
|
||||
self.update_service = update_service()
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from abstracts.repository import BaseRepository
|
|||
from fastapi import HTTPException, status
|
||||
|
||||
|
||||
class ClientDeleteRepository(BaseRepository):
|
||||
class DeleteRepository(BaseRepository):
|
||||
"""
|
||||
Repositório responsável pela operação de exclusão (DELETE) de um
|
||||
registro na tabela 'client', usando o client_id como critério.
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from abstracts.repository import BaseRepository
|
|||
from typing import Tuple, List, Dict, Any
|
||||
|
||||
|
||||
class ClientIndexRepository(BaseRepository):
|
||||
class IndexRepository(BaseRepository):
|
||||
"""
|
||||
Repositório responsável por buscar e retornar todos os registros
|
||||
da tabela 'client' (indexação), com suporte a paginação.
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from fastapi import HTTPException, status
|
|||
from abstracts.repository import BaseRepository
|
||||
from packages.v1.administrativo.schemas.client_schema import ClientSaveSchema # Importação do schema ClientSaveSchema
|
||||
|
||||
class ClientSaveRepository(BaseRepository):
|
||||
class SaveRepository(BaseRepository):
|
||||
"""
|
||||
Repositório responsável pela operação de salvar/atualizar (Upsert)
|
||||
um registro na tabela 'client', utilizando a lógica INSERT...ON DUPLICATE KEY UPDATE.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ from packages.v1.administrativo.schemas.client_schema import ClientSchema
|
|||
from fastapi import HTTPException, status
|
||||
|
||||
|
||||
class ClientShowRepository(BaseRepository):
|
||||
class ShowRepository(BaseRepository):
|
||||
"""
|
||||
Repositório responsável por buscar um registro único na tabela 'client'
|
||||
utilizando a chave primária 'client_id'.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from fastapi import HTTPException, status
|
|||
# A importação de 'datetime' foi removida no código original e não é necessária aqui.
|
||||
|
||||
|
||||
class ClientUpdateRepository(BaseRepository):
|
||||
class UpdateRepository(BaseRepository):
|
||||
"""
|
||||
Repositório responsável pela atualização (UPDATE) dinâmica de um
|
||||
registro na tabela 'client', identificado pelo 'client_id'.
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
from packages.v1.administrativo.schemas.client_schema import ClientIdSchema
|
||||
from packages.v1.administrativo.actions.client.client_delete_action import ClientDeleteAction
|
||||
from packages.v1.administrativo.actions.client.client_delete_action import DeleteAction
|
||||
|
||||
|
||||
class ClientDeleteService:
|
||||
class DeleteService:
|
||||
"""
|
||||
Service responsável por orquestrar a exclusão de um cliente,
|
||||
delegando a execução para a Action correspondente.
|
||||
|
|
@ -17,7 +17,7 @@ class ClientDeleteService:
|
|||
"""
|
||||
|
||||
# Instânciamento de ação
|
||||
delete_action = ClientDeleteAction()
|
||||
delete_action = DeleteAction()
|
||||
|
||||
# Executa a ação em questão
|
||||
data = delete_action.execute(client_schema)
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
from fastapi import HTTPException, status
|
||||
from packages.v1.administrativo.schemas.client_schema import ClientSchema
|
||||
from packages.v1.administrativo.actions.client.client_index_action import ClientIndexAction
|
||||
from packages.v1.administrativo.actions.client.client_index_action import IndexAction
|
||||
|
||||
|
||||
class ClientIndexService:
|
||||
class IndexService:
|
||||
"""
|
||||
Service responsável por orquestrar a listagem (indexação) de todos
|
||||
os clientes, delegando a busca para a Action correspondente.
|
||||
|
|
@ -19,7 +19,7 @@ class ClientIndexService:
|
|||
"""
|
||||
|
||||
# Instânciamento de ação
|
||||
index_action = ClientIndexAction()
|
||||
index_action = IndexAction()
|
||||
|
||||
# Executa a busca de todos os clientes (a Action/Repository fará a busca, potencialmente com paginação)
|
||||
data = index_action.execute()
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
from actions.dynamic_import.dynamic_import import DynamicImport
|
||||
from packages.v1.administrativo.schemas.client_schema import ClientSaveSchema, ClientCNSSchema
|
||||
from packages.v1.administrativo.actions.client.client_save_action import ClientSaveAction
|
||||
from packages.v1.administrativo.actions.client.client_save_action import SaveAction
|
||||
from fastapi import status, HTTPException
|
||||
|
||||
|
||||
class ClientSaveService:
|
||||
class SaveService:
|
||||
"""
|
||||
Service responsável por orquestrar o salvamento (INSERT/UPDATE) de um cliente.
|
||||
Inclui validações de regra de negócio, como a unicidade do CNS.
|
||||
|
|
@ -58,7 +58,7 @@ class ClientSaveService:
|
|||
)
|
||||
|
||||
# Instânciamento de ações
|
||||
save_action = ClientSaveAction()
|
||||
save_action = SaveAction()
|
||||
|
||||
# Executa a ação de persistência
|
||||
return save_action.execute(client_schema)
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
from fastapi import HTTPException, status
|
||||
from packages.v1.administrativo.schemas.client_schema import ClientSchema
|
||||
from packages.v1.administrativo.actions.client.client_show_action import ClientShowAction
|
||||
from packages.v1.administrativo.actions.client.client_show_action import ShowAction
|
||||
|
||||
|
||||
class ClientShowService:
|
||||
class ShowService:
|
||||
"""
|
||||
Service responsável por orquestrar a visualização de um cliente específico
|
||||
(geralmente pelo client_id), delegando a execução para a Action.
|
||||
|
|
@ -18,7 +18,7 @@ class ClientShowService:
|
|||
"""
|
||||
|
||||
# Instânciamento de ação
|
||||
show_action = ClientShowAction()
|
||||
show_action = ShowAction()
|
||||
|
||||
# Executa a ação em questão
|
||||
data = show_action.execute(client_schema)
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
from packages.v1.administrativo.schemas.client_schema import ClientUpdateSchema, ClientCNSSchema
|
||||
from packages.v1.administrativo.actions.client.client_update_action import ClientUpdateAction
|
||||
from packages.v1.administrativo.actions.client.client_update_action import UpdateAction
|
||||
from actions.dynamic_import.dynamic_import import DynamicImport
|
||||
from fastapi import status, HTTPException
|
||||
|
||||
|
||||
class ClientUpdateService:
|
||||
class UpdateService:
|
||||
"""
|
||||
Service responsável por orquestrar a atualização de um cliente,
|
||||
incluindo validações de regra de negócio antes de delegar a ação.
|
||||
|
|
@ -59,7 +59,7 @@ class ClientUpdateService:
|
|||
)
|
||||
|
||||
# Instânciamento da Action de atualização
|
||||
update_action = ClientUpdateAction()
|
||||
update_action = UpdateAction()
|
||||
|
||||
# Executa a ação de atualização
|
||||
return update_action.execute(client_id, client_schema)
|
||||
Loading…
Add table
Reference in a new issue