Projeto realizado com base Nesse Desafio
- Usar formato JSON para leitura e escrita (ex:
GET /accounts/
retorna Json,POST /accounts/
{name: "John Doe"}
)
/accounts
A entidade Account
possui os seguintes atributos:
id
name
cpf
secret
balance
created_at
GET /accounts
- obtém a lista de contasGET /accounts/{account_id}/balance
- obtém o saldo da contaPOST /accounts
- cria umaAccount
balance
pode iniciar com 0 ou algum valor para simplificarsecret
deve ser armazenado como hash
/login
A entidade Login
possui os seguintes atributos:
cpf
secret
Espera-se as seguintes ações:
POST /login
- autentica o usuário
Regras para esta rota
- Deve retornar token para ser usado nas rotas autenticadas
/transfers
A entidade Transfer
possui os seguintes atributos:
id
account_id
account_destination_id
amount
created_at
Espera-se as seguintes ações:
GET /transfers
- obtém a lista de transferência do usuario autenticadoPOST /transfers
- faz transferência de umaAccount
para outra
Regras para esta rota
- Quem fizer a transferência precisar estar autenticado
- O
account_id
deve ser obtido no Token enviado - Caso
Account
de origem não tenha saldo, retornar um código de erro apropriado - Atualizar o
balance
das contas
Tecnologias utilizadas:
- Nodejs
- TypeScript
- TypeORM
- PostgresSQL
- Bcrypt
- Jsonwebtoken