Skip to content

Rocketpay é uma API criada utilizando Elixir e Phoenix durante a NLW#4 da Rocketseat.

License

Notifications You must be signed in to change notification settings

tavareshenrique/rocketpay-nlw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rocketpay

Henrique Tavares Repository size Last commit on GitHub GitHub last commit License

Rocketpay é uma API criada utilizando Elixir e Phoenix durante a NLW#4 da Rocketseat. Esse projeto permite a transação de valores entre 2 usuários.

O Rocketpay foi desenvolvido com ❤︎ pelo Henrique Tavares
Run in Insomnia

📌 Conteúdo

💾 API

Accounts

Deposit

Esse End-Point permite o deposito de um determinado valor na conta do usuário.

  • URL

    /accounts/:userId/deposit

  • Method:

    POST

  • URL Params

    • Required:

      :userId -> ID do usuário que será feito o deposito. Basic Auth -> Informe o nome de usuário "henrique" e senha "123456" como autenticação básica

  • JSON Example:

    {
      "value": "100.50"
    }
  • Success Response:

    • Code: 200
      Content:

      {
        "account": {
          "balance": "100.50",
          "id": "a44e81ee-7852-49d0-85b1-e3fa5775e3a7"
        },
        "message": "Ballance changed successfully"
      }

Withdraw

Esse End-Point permite o saque de um determinado valor na conta do usuário.

  • URL

    /accounts/:userId/withdraw

  • Method:

    POST

  • URL Params

    • Required:

      :userId -> ID do usuário que será feito o deposito. Basic Auth -> Informe o nome de usuário "henrique" e senha "123456" como autenticação básica

  • JSON Example:

    {
      "value": "50.50"
    }
  • Success Response:

    • Code: 200
      Content:

      {
        "account": {
          "balance": "50",
          "id": "a44e81ee-7852-49d0-85b1-e3fa5775e3a7"
        },
        "message": "Ballance changed successfully"
      }

Transaction

Esse End-Point permite a transferência entre dois usuários.

  • URL

    /accounts/transaction

  • Method:

    POST

  • URL Params

    • Required:

      Basic Auth -> Informe o nome de usuário "henrique" e senha "123456" como autenticação básica

  • JSON Example:

    {
      "value": "39.60",
      "from": "a44e81ee-7852-49d0-85b1-e3fa5775e3a7",
      "to": "98981aca-7c3c-4f1d-8520-1cbf0445dd11"
    }
  • Success Response:

    • Code: 200
      Content:

      {
        "message": "Transaction done successfully",
        "transaction": {
          "from_account": {
            "balance": "120.80",
            "id": "a44e81ee-7852-49d0-85b1-e3fa5775e3a7"
          },
          "to_account": {
            "balance": "368.80",
            "id": "98981aca-7c3c-4f1d-8520-1cbf0445dd11"
          }
        }
      }

User

Create User

Esse End-Point permit a criação de um usuário

  • URL

    /users

  • Method:

    POST

  • JSON Example:

    {
      "name": "Henrique",
      "nickname": "henrique",
      "email": "henrique@gmail.com",
      "age": 24,
      "password": "123456"
    }
  • Success Response:

    • Code: 200
      Content:

      {
        "message": "User created",
        "user": {
          "account": {
            "balance": "0.00",
            "id": "a44e81ee-7852-49d0-85b1-e3fa5775e3a7"
          },
          "id": "d88ffdf0-0cf7-4a32-ac18-7ac00b8eaaaf",
          "name": "Henrique",
          "nickname": "henrique"
        }
      }

💻 Tecnologias

Este projeto foi feito utilizando as seguintes tecnologias:

👷 Executando

Passo 1:

# Clone o Repositório
$ git@github.com:tavareshenrique/rocketpay-nlw.git

Passo 2:

# É necessário que você tenha o banco Postgres rodando em sua máquina, seja Docker ou não.

Passo 3:

# Crie dois bancos com os seguintes nomes:

rocketpay_dev
# e
rocketpay_test

Passo 4:

# Configure seu usuário, senha etc. do banco nos arquivos:

config > dev.exs
# e
config > test.exs

Passo 5:

# Rode esse comando para ele criar/registrar o banco de dados
$ mix ecto.create

Passo 5:

# Rodando as Migrations
$ mix ecto.migrate

Passo 5:

# Pronto! Agora é só executar o Server;
$ mix phx.server

Acesse http://localhost:3000 para ver o resultado.

💻 Autores

Henrique Tavares
Henrique Tavares

@tavareshenrique
💻
Henrique Tavares
Rocketseat

@Rocketseat
🚀

📕 Licença

Este projeto está sob a licença MIT.

About

Rocketpay é uma API criada utilizando Elixir e Phoenix durante a NLW#4 da Rocketseat.

Topics

Resources

License

Stars

Watchers

Forks

Languages