Git Product home page Git Product logo

btg-test's Introduction

API Gestão de Limites de PIX

Para atender aos requisitos de negócio para gerenciamento de limites pelo analista de fraudes, foi disponibilizado 4 endpoints:

POST /limit-manager - cria novo limite para uma conta específica.
GET /limit-manager - retorna o limite cadastrado de uma conta específica.
PUT /limit-manager - atualiza informações de limite de uma conta específica.
DELETE /limit-manager - deleta informações de limite cadastrado de uma conta específica.

Foi disponibilizado também outros endpoints para fazer a validação, compensação e reestabelecimento (reset) do limite disponível de PIX, passando o valor da transação desejada como parâmetro:

POST /validate-limit - valida se tem limite disponível para uma transação de PIX de uma conta específica.
PATCH /limit-manager/update-limit - atualiza valor de limite disponível para transações de PIX de uma conta específica.
PATCH /limit-manager/reset-limit - reinicia limite disponível baseado no limite cadastrado de uma conta específica. (não está especificado claramente nas regras de negócio, mas creio que seja importante em algum momento - por exemplo: o limite é reiniciado a cada inicio do dia/semana).

Todos os endpoints acima também foi incluído camada de autenticação JWT, que deverá ser informado no header de cada requisição.
As chaves para consulta e alteração dos limites são os dados de agencia (branch) e numero da conta (accountNumber), que deverá ser informados ou no header da requisição ou no body, dependendo do endpoint. (Estes campos foram escolhidos como chave para facilitar o acesso dessas informações de limite em integrações com outros sistemas, módulos, etc).

Para acessar detalhes de como utilizar estas APIs, executar os seguintes passos:

  1. Acessar pasta do projeto /BtgTest/src/BtgTest
  2. Executar comando no terminal dotnet run
  3. Acessar o endpoint local no navegador http://localhost:5000/swagger/index.html

Para realizar o deploy da API:

  1. Instalar dependências do template utilizado usando o comando dotnet tool install -g Amazon.Lambda.Tools
    1.1. caso já esteja instalado, verificar se há uma atualização mais recente disponível executando o comando dotnet tool update -g Amazon.Lambda.Tools
  2. Executar comando dotnet lambda deploy-serverless

Recursos de AWS utilizados:

Lambda - executar os endpoints da API
API Gateway - expor as rotas para os endpoints da API
Dynamo DB - persistir dados para a gestão de limites
S3 - usado no deploy da lambda via Cloud Formation

TODOs:
Tarefas importantes que ainda precisam ser feitas, mas que devido ao tempo ainda não foi possível:

[ ] Testes Unitários
[ ] Testes Integrados
[ ] Integração do API Gatewaty com o Cognito
[ ] Otimização CI/CD
[ ] Melhoria em mensagens de retorno dos endpoints da API
[ ] Integração com Frontend

btg-test's People

Contributors

dfcamposs avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.