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.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'.
|
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.
|
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.
|
:return: Resultado da operação de exclusão do repositório.
|
||||||
"""
|
"""
|
||||||
# Instancia o repositório específico para a exclusão de clientes
|
# 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
|
# Chama o método execute do repositório, passando o schema do cliente
|
||||||
return delete_repository.execute(client_schema)
|
return delete_repository.execute(client_schema)
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
from abstracts.action import BaseAction
|
from abstracts.action import BaseAction
|
||||||
# O repositório deve ser adaptado para a listagem (indexação) da tabela 'client'
|
# 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
|
from typing import Tuple, List, Dict, Any
|
||||||
|
|
||||||
|
|
||||||
class ClientIndexAction(BaseAction):
|
class IndexAction(BaseAction):
|
||||||
"""
|
"""
|
||||||
Action responsável por orquestrar a listagem (indexação) de todos
|
Action responsável por orquestrar a listagem (indexação) de todos
|
||||||
os registros da tabela 'client' com suporte a paginação.
|
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.
|
:return: Tupla com a lista de clientes e o total de registros.
|
||||||
"""
|
"""
|
||||||
# Instânciamento do repositório de indexação (listagem) de clientes
|
# 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)
|
# Supondo que IndexRepository é onde a lógica de acesso ao BD está (SELECT * FROM client LIMIT first OFFSET skip)
|
||||||
client_index_repository = ClientIndexRepository()
|
client_index_repository = IndexRepository()
|
||||||
|
|
||||||
# Execução do repositório para buscar os clientes com paginação
|
# 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
|
# 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.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)
|
Action responsável por orquestrar a operação de salvar (inserir ou atualizar)
|
||||||
um registro na tabela 'client'.
|
um registro na tabela 'client'.
|
||||||
|
|
@ -21,7 +21,7 @@ class ClientSaveAction:
|
||||||
:return: Resultado da operação de salvamento do repositório.
|
:return: Resultado da operação de salvamento do repositório.
|
||||||
"""
|
"""
|
||||||
# Instancia o repositório específico para a operação de salvar clientes
|
# 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
|
# Chama o método execute do repositório, passando o objeto schema
|
||||||
return save_repository.execute(client_schema)
|
return save_repository.execute(client_schema)
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
from abstracts.action import BaseAction
|
from abstracts.action import BaseAction
|
||||||
from packages.v1.administrativo.schemas.client_schema import ClientSchema
|
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
|
Action responsável por orquestrar a visualização (show) de um registro
|
||||||
único na tabela 'client', geralmente utilizando o 'client_id'.
|
ú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.
|
:return: O registro de cliente encontrado ou None/erro.
|
||||||
"""
|
"""
|
||||||
# Instânciamento do repositório de visualização (show)
|
# Instânciamento do repositório de visualização (show)
|
||||||
show_repository = ClientShowRepository()
|
show_repository = ShowRepository()
|
||||||
|
|
||||||
# Execução do repositório
|
# Execução do repositório
|
||||||
response = show_repository.execute(client_schema)
|
response = show_repository.execute(client_schema)
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
from packages.v1.administrativo.schemas.client_schema import ClientUpdateSchema
|
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)
|
Action responsável por orquestrar a operação de atualização (UPDATE)
|
||||||
de um registro na tabela 'client', identificado pelo seu ID.
|
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.
|
: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
|
# 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
|
# Chama o método execute do repositório, passando o ID e o objeto schema
|
||||||
return update_repository.execute(client_id, client_schema)
|
return update_repository.execute(client_id, client_schema)
|
||||||
|
|
@ -106,7 +106,7 @@ class ClientController:
|
||||||
def save(self, client_schema: ClientSaveSchema):
|
def save(self, client_schema: ClientSaveSchema):
|
||||||
|
|
||||||
#Importação da classe desejada
|
#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
|
# Instânciamento da classe desejada
|
||||||
self.save_service = save_service()
|
self.save_service = save_service()
|
||||||
|
|
@ -121,7 +121,7 @@ class ClientController:
|
||||||
def update(self, client_id: int, client_schema: ClientUpdateSchema):
|
def update(self, client_id: int, client_schema: ClientUpdateSchema):
|
||||||
|
|
||||||
#Importação da classe desejada
|
#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
|
# Instânciamento da classe desejada
|
||||||
self.update_service = update_service()
|
self.update_service = update_service()
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ from abstracts.repository import BaseRepository
|
||||||
from fastapi import HTTPException, status
|
from fastapi import HTTPException, status
|
||||||
|
|
||||||
|
|
||||||
class ClientDeleteRepository(BaseRepository):
|
class DeleteRepository(BaseRepository):
|
||||||
"""
|
"""
|
||||||
Repositório responsável pela operação de exclusão (DELETE) de um
|
Repositório responsável pela operação de exclusão (DELETE) de um
|
||||||
registro na tabela 'client', usando o client_id como critério.
|
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
|
from typing import Tuple, List, Dict, Any
|
||||||
|
|
||||||
|
|
||||||
class ClientIndexRepository(BaseRepository):
|
class IndexRepository(BaseRepository):
|
||||||
"""
|
"""
|
||||||
Repositório responsável por buscar e retornar todos os registros
|
Repositório responsável por buscar e retornar todos os registros
|
||||||
da tabela 'client' (indexação), com suporte a paginação.
|
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 abstracts.repository import BaseRepository
|
||||||
from packages.v1.administrativo.schemas.client_schema import ClientSaveSchema # Importação do schema ClientSaveSchema
|
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)
|
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.
|
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
|
from fastapi import HTTPException, status
|
||||||
|
|
||||||
|
|
||||||
class ClientShowRepository(BaseRepository):
|
class ShowRepository(BaseRepository):
|
||||||
"""
|
"""
|
||||||
Repositório responsável por buscar um registro único na tabela 'client'
|
Repositório responsável por buscar um registro único na tabela 'client'
|
||||||
utilizando a chave primária 'client_id'.
|
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.
|
# 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
|
Repositório responsável pela atualização (UPDATE) dinâmica de um
|
||||||
registro na tabela 'client', identificado pelo 'client_id'.
|
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.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,
|
Service responsável por orquestrar a exclusão de um cliente,
|
||||||
delegando a execução para a Action correspondente.
|
delegando a execução para a Action correspondente.
|
||||||
|
|
@ -17,7 +17,7 @@ class ClientDeleteService:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Instânciamento de ação
|
# Instânciamento de ação
|
||||||
delete_action = ClientDeleteAction()
|
delete_action = DeleteAction()
|
||||||
|
|
||||||
# Executa a ação em questão
|
# Executa a ação em questão
|
||||||
data = delete_action.execute(client_schema)
|
data = delete_action.execute(client_schema)
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
from fastapi import HTTPException, status
|
from fastapi import HTTPException, status
|
||||||
from packages.v1.administrativo.schemas.client_schema import ClientSchema
|
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
|
Service responsável por orquestrar a listagem (indexação) de todos
|
||||||
os clientes, delegando a busca para a Action correspondente.
|
os clientes, delegando a busca para a Action correspondente.
|
||||||
|
|
@ -19,7 +19,7 @@ class ClientIndexService:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Instânciamento de ação
|
# 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)
|
# Executa a busca de todos os clientes (a Action/Repository fará a busca, potencialmente com paginação)
|
||||||
data = index_action.execute()
|
data = index_action.execute()
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
from actions.dynamic_import.dynamic_import import DynamicImport
|
from actions.dynamic_import.dynamic_import import DynamicImport
|
||||||
from packages.v1.administrativo.schemas.client_schema import ClientSaveSchema, ClientCNSSchema
|
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
|
from fastapi import status, HTTPException
|
||||||
|
|
||||||
|
|
||||||
class ClientSaveService:
|
class SaveService:
|
||||||
"""
|
"""
|
||||||
Service responsável por orquestrar o salvamento (INSERT/UPDATE) de um cliente.
|
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.
|
Inclui validações de regra de negócio, como a unicidade do CNS.
|
||||||
|
|
@ -58,7 +58,7 @@ class ClientSaveService:
|
||||||
)
|
)
|
||||||
|
|
||||||
# Instânciamento de ações
|
# Instânciamento de ações
|
||||||
save_action = ClientSaveAction()
|
save_action = SaveAction()
|
||||||
|
|
||||||
# Executa a ação de persistência
|
# Executa a ação de persistência
|
||||||
return save_action.execute(client_schema)
|
return save_action.execute(client_schema)
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
from fastapi import HTTPException, status
|
from fastapi import HTTPException, status
|
||||||
from packages.v1.administrativo.schemas.client_schema import ClientSchema
|
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
|
Service responsável por orquestrar a visualização de um cliente específico
|
||||||
(geralmente pelo client_id), delegando a execução para a Action.
|
(geralmente pelo client_id), delegando a execução para a Action.
|
||||||
|
|
@ -18,7 +18,7 @@ class ClientShowService:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Instânciamento de ação
|
# Instânciamento de ação
|
||||||
show_action = ClientShowAction()
|
show_action = ShowAction()
|
||||||
|
|
||||||
# Executa a ação em questão
|
# Executa a ação em questão
|
||||||
data = show_action.execute(client_schema)
|
data = show_action.execute(client_schema)
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
from packages.v1.administrativo.schemas.client_schema import ClientUpdateSchema, ClientCNSSchema
|
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 actions.dynamic_import.dynamic_import import DynamicImport
|
||||||
from fastapi import status, HTTPException
|
from fastapi import status, HTTPException
|
||||||
|
|
||||||
|
|
||||||
class ClientUpdateService:
|
class UpdateService:
|
||||||
"""
|
"""
|
||||||
Service responsável por orquestrar a atualização de um cliente,
|
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.
|
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
|
# Instânciamento da Action de atualização
|
||||||
update_action = ClientUpdateAction()
|
update_action = UpdateAction()
|
||||||
|
|
||||||
# Executa a ação de atualização
|
# Executa a ação de atualização
|
||||||
return update_action.execute(client_id, client_schema)
|
return update_action.execute(client_id, client_schema)
|
||||||
Loading…
Add table
Reference in a new issue