/rocketpay-elixir

Projeto de API de pagamento desenvolvido em Elixir, Phoenix e Ecto.

Primary LanguageElixir

Rocketpay

Para iniciar o servidor Phoenix:

  • Instale as dependências com mix deps.get
  • Crie e execute as migrations com mix ecto.setup
  • Inicie o servidor Phoenix com mix phx.server

Agora você pode abrir localhost:4000 no seu navegador.

Ready to run in production? Please check our deployment guides.

Aprenda mais

Docs

Acesse a pasta [docs] para ver as anotações das aulas.

Rotas

  • POST api/users - Criar novo usuário
  • POST api/account/:id/deposit - Fazer um depósito na conta
  • POST api/account/:id/deposit - Fazer um depósito na conta
  • POST api/account/transaction - Fazer uma transferência

Exemplos

POST api/users

Corpo da requisição:

  {
    "name": "Pedro",
    "age": 19,
    "email": "mnopedrodias@outlook.com",
    "password": "123456",
    "nickname": "pedrofigueiredo"
  }

Resposta:

  {
    "message": "User created",
    "user": {
      "account": {
        "balance": "0.00",
        "id": "d5f169f9-0493-46dc-b708-564bdcb1fee5"
      },
      "id": "8ddaea16-c6ca-48f5-bd03-9e96c910f52d",
      "name": "Pedro",
      "nickname": "pedrofigueiredo"
    }
  }

POST api/account/:id/deposit

Requisição: POST api/accounts/d5f169f9-0493-46dc-b708-564bdcb1fee5/deposit

Corpo da requisição:

  {
    "value": "50"
  }

Resposta:

  {
    "account": {
      "balance": "165.00",
      "id": "d5f169f9-0493-46dc-b708-564bdcb1fee5"
    },
    "message": "Ballance changed successfully"
  }

POST api/account/:id/withdraw

Requisição: POST api/accounts/d5f169f9-0493-46dc-b708-564bdcb1fee5/withdraw

Corpo da requisição:

  {
    "value": "1"
  }

Resposta:

  {
    "account": {
      "balance": "177.00",
      "id": "d5f169f9-0493-46dc-b708-564bdcb1fee5"
    },
    "message": "Ballance changed successfully"
  }

POST api/account/transaction

Corpo da requisição:

  {
    "value": "2",
    "from": "d5f169f9-0493-46dc-b708-564bdcb1fee5",
    "to": "ecd5ba49-1b55-4ad4-9635-7fb62d769633"
  }

Resposta:

  {
    "message": "Transaction done successfully",
    "transaction": {
      "from_account": {
        "balance": "177.00",
        "id": "d5f169f9-0493-46dc-b708-564bdcb1fee5"
      },
      "to_account": {
        "balance": "72.00",
        "id": "ecd5ba49-1b55-4ad4-9635-7fb62d769633"
      }
    }
  }