Aplicação referente ao desafio proposto pela BHub. O objetivo é ter um mecanismo capaz de processar diferentes regras com base no seu payload.
Para instalação das dependências é necessário o uso do poetry (ferramenta para gestão de dependências). Caso ainda não possua essa ferramenta instalada, usar o comando abaixo:
pip install poetry
Com o poetry instalado, executar o comando abaixo na raiz do projeto:
poetry install
E para ativar o virtualenv, executar:
poetry shell
Antes de startar a aplicação é necessário configurar as variáveis de ambiente conforme o arquivo .env-example. Depois dessa configuração é só executar o comando abaixo para rodar a aplicação.
task dev
Pensando na simplicidade e para uma versão inicial, a aplicação é basicamente um monolito que recebe uma requisição, consome um serviço externo (GoRules) que contém as definições de regras e finaliza o processamento com base nas actions cadastradas. Aqui todo o processo é síncrono.
Para testar o mecanismo de avaliação de regras e execução das ações pode ser o usada a collection postman ou executar os comandos cUrl abaixo:
# emitirRemessaEntrega
curl --location 'localhost:5000/payments' \
--header 'Content-Type: application/json' \
--data '{
"payment": {
"type": "fisico"
}
}'
# ativaAssociacao
curl --location 'localhost:5000/payments' \
--header 'Content-Type: application/json' \
--data '{
"record_type": "activate"
}'
# atualizaAssociacao
curl --location 'localhost:5000/payments' \
--header 'Content-Type: application/json' \
--data '{
"record_type": "update"
}'