Nesse desafio você irá implementar uma nova funcionalidade na FinAPI, a aplicação que foi testada durante o desafio Testes unitários.
A nova funcionalidade deverá permitir a transferência de valores entre contas. Para isso, você pode pensar na melhor forma de construir essa solução mas alguns requisitos deverão ser cumpridos:
-
Não deve ser possível transferir valores superiores ao disponível no saldo de uma conta;
-
O balance (obtido através da rota
/api/v1/statements/balance
) deverá considerar também todos os valores transferidos ou recebidos através de transferências ao exibir o saldo de um usuário; -
As informações para realizar uma transferência serão:
{ "amount": 100, "description": "Descrição da transferência" }
Você pode passar o
id
do usuário destinatário via parâmetro na rota (exemplo:/api/v1/statements/transfers/:user_id
) e o id do usuário remetente poderá ser obtido através do token JWT enviado no header da requisição;
Esse desafio não possui testes. Você poderá realizar as alterações no mesmo repositório usado para o desafio de testes unitários e submeter novamente na plataforma.