Boas vindas ao meu Case técnico para a Cumbuca
Entidade | Campos |
UserAccount | ```elixir %{ balance: string, owner_cpf: string, owner_first_name: string, owner_last_name: string | nil, identifier: string } ``` |
Transaction | ```elixir %{ amount: string, processed_at: naive_date_time | nil, chargebacked_at: naive_date_time | nil, sender: UserAccount, receiver: UserAccount, } ``` |
Ação | Tipo | Argumentos | Retorno | Autenticada? |
CheckBalance | Query | nenhum | String | Sim |
Transactions | Query | `%{from_period: ISO8601, to_period: ISO8601}` | [Transaction] | Sim |
Transact | Mutation | `%{amount: integer, receiver: string}` | `%{identifier: string}` | Sim |
ChargebackTransaction | Mutation | `%{identifier: string}` | `%{identifier: string}` | Sim |
RegisterAccount | Mutation | `%{cpf: string, first_name: string, last_name: string | nil, balance: integer | nil}` | UserAccount | Não |
Login | Mutation | `%{cpf: string, account_identifier: string}` | `%{token: string}` | Não |
TransactionProcessed | Subscription | nenhum | Transaction | Sim |
TransactionChargebacked | Subscription | nenhum | Transaction | Sim |
A API se encontra deployada em https://cumbuca-teste.fly.dev!
Lembre-se de antes configurar o PostgreSQL e modificar config/dev.exs
caso seja necessário.
$ mix do setup, phx.server
O servidor estará rodando na porta 4000!
Para rodar os testes:
$ mix test
Você pode querer rodar apenas testes unitários ou de integração, portanto, basta passar a flag --only
para o comando, com os valores unit
ou integration
.
ps: Existe um arquivo com todas as queries e mutations, com profiles customizados para Insomnia na raiz do projeto.