Este projeto implementa um sistema de autorização de transações de cartão de crédito. O sistema recebe transações e decide se as aprova ou rejeita com base em regras predefinidas, como o MCC (Merchant Category Code) e o saldo disponível em categorias específicas.
- Java 17
- Spring Boot
- MySQL
- Docker Compose
- JUnit
Certifique-se de ter os seguintes softwares instalados:
- Docker
- Docker Compose
-
Clone o Repositório:
git clone https://github.com/gustavomolina/credit-card-authorizer.git cd credit-card-authorizer
-
Construa e Execute o Projeto com Docker Compose:
No diretório raiz do projeto, execute o comando abaixo:
docker-compose up --build
Este comando irá:
- Configurar o banco de dados MySQL.
- Configurar e iniciar a aplicação Spring Boot.
-
Verifique se a Aplicação está Rodando:
Acesse http://localhost:8080/transactions para verificar se a aplicação está rodando.
-
URL:
/transactions
-
Método:
POST
-
Corpo da Requisição:
{ "account": { "accountId": "123" }, "amount": 100.00, "mcc": "5811", "merchant": "PADARIA DO ZE SAO PAULO BR" }
-
Exemplo de Resposta:
{ "code": "00" }
-
Códigos de Resposta:
00
- Transação aprovada.51
- Transação rejeitada por saldo insuficiente.07
- Erro genérico ao processar a transação.
Os testes unitários foram implementados usando JUnit. Para executá-los manualmente, você pode rodar o seguinte comando:
mvn test
Pull requests são bem-vindos. Para mudanças maiores, abra uma issue primeiro para discutir o que você gostaria de mudar.