API para implementação do desafio proposto pela Pismo.
Cada cliente possue uma conta e cada transação realizada está vinculada à uma conta. Cada transação possui um tipo, um valor, um saldo e uma data de lançamento.
O sistema deve ser capaz de criar, atualizar e listar contas. Também deve ser capaz de criar uma transação, trabalhando com o conceito do saldo em aberto das mesmas, sendo capaz de recalculado o saldo em aberto após um pagamento.
Implementado em Golang e utilizando o framework Gin.
https://documenter.getpostman.com/view/7995657/SVtbPkFJ
- POST /accounts : Cria uma nova conta;
- PATCH /accounts/:id : Altera os limites de uma conta já existente;
- GET /accounts/limits : Retorna os limites de uma conta já existente;
- POST /transactions : Insere uma nova transação;
- POST /payments : Insere várias transações de pagamento de uma vez;
- GET /transactions : Retorna todas as transações;
- GET /transactions/accounts/:id : Retorna todas as transações de uma conta já existente;
- Docker;
- Clean Architecture;
- Govalidator para conferir campos obrigatórios;
- Log enviado para o Timber.io;
- TDD;
- Utilizado Mutex para evitar concorrencia;
- Persistência com o MongoDB;
- Paginação nas rotas de consulta;
- Finalizar TDD nas rotas;
- Abstrair camada da API;
Para executar, baixe o projeto e execute o comando para gerar o docker
docker build -t pismo .
Após, é só executar o docker direcionando para a porta 9292
docker run -p 9292:9292 pismo