Skip to content

Instantly share code, notes, and snippets.

def register(conn, %{"user" => user_params}) do
case ElixirStream.RegisterAction.sign_up(user_params) do
{:ok, user} ->
conn
|> put_flash(:info, "You have signed up and logged in!")
|> put_session(:user_id, user.id)
|> redirect(to: entry_path(conn, :index))
{:error, changeset} ->
conn
|> render("register_form.html", changeset: changeset)
defmodule ElixirStream.RegisterAction do
alias ElixirStream.User
def sign_up(params) do
changeset = User.changeset(%User{}, params)
if changeset.valid? do
user = ElixirStream.Repo.insert(changeset)
{:ok, user}
else
{:error, changeset}
end
def set_password_digest(changeset) do
password = Ecto.Changeset.get_field(changeset, :password)
change(changeset, %{password_digest: crypt_password(password)})
end
model
|> cast(params, @required_fields, @optional_fields)
changeset = Entry.changeset(%Entry{}, params)
if changeset.valid? do
Repo.insert(changeset)
## Oh the happy path
else
## The sad path :(
end
Repo.all from e in Entry, order_by: [desc: e.id], preload: [:user]
defmodule ElixirStream.Entry do
use ElixirStream.Web, :model
use Ecto.Model.Callbacks
alias ElixirStream.User
before_insert :set_slug
schema "entries" do
field :email, :string
field :author_name, :string
{:ok, users_json} = File.read("users.json")
{:ok, users_parsed} = JSX.decode(users_json, [{:labels, :atom}])
Enum.map(users_parsed, fn(e)-> %User{username: e.username, password_digest: e.password_digest, email: e.email} end) |>
Enum.each(fn(e)-> Repo.insert!(e, false) end)
# In emacs I have this:
play_by_play_api_class.play_by_play(
game.scheduled_time.year,
game.week.season,
game.week.nr,
game.home_team.abbreviation,
game.away_team.abbreviation
)
{
"id": 1,
"email": null,
"password_digest": null,
"token": "446608df-1f80-409d-9815-39146b8876df",
"created_at": "2015-05-08T07:26:43.202Z",
"updated_at": "2015-05-08T07:26:43.202Z",
"full_name": "Janis Miezitis",
"phone_number": null,
"reset_password_token": null,