Criar banco
mix ecto.create
# The database for Rocketpay.Repo has already been created
Criar Migration
mix ecto.gen.migration nome_da_migration
Exemplo de Migration
defmodule Rocketpay.Repo.Migrations.CreateUserTable do
use Ecto.Migration
def change do
create table :users do
add :name, :string
add :age, :integer
add :email, :string
add :password_hash, :string
add :nickname, :string
timestamps()
end
create unique_index(:users, [:email])
create unique_index(:users, [:nickname])
end
end
Rodar Migrations
mix ecto.migrate
Excluir Banco
mix ecto.drop
Exemplo de Controller, um controller sempre recebe a conexão como primeiro parametro
defmodule RocketpayWeb.WelcomeController do
use RocketpayWeb, :controller
alias Rocketpay.Numbers
def index(conn, %{"filename" => filename}) do
filename
|> Numbers.sum_from_file()
|> handle_response(conn)
end
defp handle_response({:ok, %{result: result}}, conn) do
conn
|> put_status(:ok)
|> json(%{message: "Welcome to Rocketpay API. Here is your number #{result}"})
end
defp handle_response({:error, reason}, conn) do
conn
|> put_status(:bad_request)
|> json(reason)
end
end