Skip to content

Commit 9d9d65c

Browse files
refactor session controller
1 parent 4f2196d commit 9d9d65c

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

lib/pointing_party/user.ex

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,22 @@
11
defmodule PointingParty.User do
22
use Ecto.Schema
33
import Ecto.Changeset
4+
alias PointingParty.User
45

56
schema "users" do
67
field :username, :string
78
end
89

10+
def create(attrs) do
11+
changeset = changeset(%User{}, attrs)
12+
if changeset.valid? do
13+
user = apply_changes(changeset)
14+
{:ok, user}
15+
else
16+
{:error, %{changeset | action: :insert}}
17+
end
18+
end
19+
920
@doc false
1021
def changeset(user, attrs \\ %{}) do
1122
user

lib/pointing_party_web/controllers/session_controller.ex

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,12 @@ defmodule PointingPartyWeb.SessionController do
88
end
99

1010
def create(conn, params) do
11-
changeset = User.changeset(%User{}, params["user"])
12-
if changeset.valid? do
13-
user = Ecto.Changeset.apply_changes(changeset)
14-
put_session(conn, :username, user.username)
15-
|> redirect(to: "/cards") |> halt()
16-
else
17-
changeset = %{changeset | action: :insert}
18-
render(conn, "new.html", changeset: changeset)
11+
case User.create(params["user"]) do
12+
{:ok, user} ->
13+
put_session(conn, :username, user.username)
14+
|> redirect(to: "/cards") |> halt()
15+
{:error, changeset} ->
16+
render(conn, "new.html", changeset: changeset)
1917
end
2018
end
2119

0 commit comments

Comments
 (0)