Skip to content

Commit

Permalink
refactor: upgrade guardian controller to 1.7
Browse files Browse the repository at this point in the history
  • Loading branch information
danielsp45 committed Sep 23, 2023
1 parent 4c82d3e commit 56c8f7f
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 22 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
defmodule BokkenWeb.Admin.GuardianView do
use BokkenWeb, :view

defmodule BokkenWeb.Controller.Admin.GuardianJSON do
alias Bokken.Uploaders.Avatar

def render("index.json", %{guardians: guardians}) do
def index(%{guardians: guardians}) do
%{data: render_many(guardians, __MODULE__, "guardian.json")}

Check failure on line 5 in lib/bokken_web/controllers/admin/guardian_json.ex

View workflow job for this annotation

GitHub Actions / OTP 25.x / Elixir 1.14.x

** (CompileError) lib/bokken_web/controllers/admin/guardian_json.ex:5: undefined function render_many/3 (expected BokkenWeb.Controller.Admin.GuardianJSON to define such a function or for it to be imported, but none are available)

Check failure on line 5 in lib/bokken_web/controllers/admin/guardian_json.ex

View workflow job for this annotation

GitHub Actions / OTP 25.x / Elixir 1.14.x

** (CompileError) lib/bokken_web/controllers/admin/guardian_json.ex:5: undefined function render_many/3 (expected BokkenWeb.Controller.Admin.GuardianJSON to define such a function or for it to be imported, but none are available)
end

def render("guardian.json", %{guardian: guardian}) do
def guardian(%{guardian: guardian}) do
%{
id: guardian.id,
photo: Avatar.url({guardian.photo, guardian}, :thumb),
Expand Down
6 changes: 3 additions & 3 deletions lib/bokken_web/controllers/admin/user_controller.ex
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
defmodule BokkenWeb.Admin.UserController do
use BokkenWeb, controller: "1.6"
use BokkenWeb, :controller

alias Bokken.Accounts
alias Bokken.Accounts.User
Expand All @@ -8,14 +8,14 @@ defmodule BokkenWeb.Admin.UserController do

def index(conn, _params) do
users = Accounts.list_users()
render(conn, "index.json", users: users)
render(conn, :index, users: users)
end

def update(conn, %{"id" => id, "user" => user_params}) when is_organizer(conn) do
user = Accounts.get_user!(id)

with {:ok, %User{} = user} <- Accounts.update_user_as_admin(user, user_params) do
render(conn, "user.json", user: user)
render(conn, :user, user: user)
end
end
end
12 changes: 6 additions & 6 deletions lib/bokken_web/controllers/guardian_controller.ex
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
defmodule BokkenWeb.GuardianController do
use BokkenWeb, controller: "1.6"
use BokkenWeb, :controller

alias Bokken.Accounts
alias Bokken.Accounts.Guardian
Expand All @@ -8,30 +8,30 @@ defmodule BokkenWeb.GuardianController do

def index(conn, _params) do
guardians = Accounts.list_guardians()
render(conn, "index.json", guardians: guardians)
render(conn, :index, guardians: guardians)
end

def create(conn, %{"guardian" => guardian_params})
when is_guardian(conn) or is_organizer(conn) do
with {:ok, %Guardian{} = guardian} <- Accounts.create_guardian(guardian_params) do
conn
|> put_status(:created)
|> put_resp_header("location", Routes.guardian_path(conn, :show, guardian))
|> render("show.json", guardian: guardian)
|> put_resp_header("location", ~p"/api/guardians/#{guardian.id}")
|> render(:show, guardian: guardian)
end
end

def show(conn, %{"id" => id}) do
guardian = Accounts.get_guardian!(id)
render(conn, "show.json", guardian: guardian)
render(conn, :show, guardian: guardian)
end

def update(conn, %{"id" => id, "guardian" => guardian_params})
when is_guardian(conn) or is_organizer(conn) do
guardian = Accounts.get_guardian!(id)

with {:ok, %Guardian{} = guardian} <- Accounts.update_guardian(guardian, guardian_params) do
render(conn, "show.json", guardian: guardian)
render(conn, :show, guardian: guardian)
end
end

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
defmodule BokkenWeb.GuardianView do
use BokkenWeb, :view

defmodule BokkenWeb.GuardianJSON do
alias Bokken.Uploaders.Avatar
alias BokkenWeb.GuardianView

def render("index.json", %{guardians: guardians, current_user: current_user}) do
%{data: render_many(guardians, GuardianView, "guardian.json", current_user: current_user)}
def index(%{guardians: guardians, current_user: current_user}) do
%{data: for(g <- guardians, do: guardian(%{guardian: g, current_user: current_user}))}
end

def render("show.json", %{guardian: guardian, current_user: current_user}) do
%{data: render_one(guardian, GuardianView, "guardian.json", current_user: current_user)}
def show(%{guardian: guardian, current_user: current_user}) do
%{data: guardian(%{guardian: guardian, current_user: current_user})}
end

def render("guardian.json", %{guardian: guardian, current_user: current_user}) do
def guardian(%{guardian: guardian, current_user: current_user}) do
data(guardian)
|> Map.merge(personal(guardian, current_user))
end
Expand Down

0 comments on commit 56c8f7f

Please sign in to comment.