philomena/lib/philomena_web/controllers/commission_controller.ex

47 lines
1.1 KiB
Elixir
Raw Permalink Normal View History

2019-11-18 01:09:15 +01:00
defmodule PhilomenaWeb.CommissionController do
use PhilomenaWeb, :controller
2025-02-07 01:06:59 +01:00
alias Philomena.Commissions.SearchQuery
alias Philomena.Commissions
2019-11-18 01:09:15 +01:00
alias Philomena.Repo
plug PhilomenaWeb.MapParameterPlug, [param: "commission"] when action in [:index]
2019-12-04 16:00:41 +01:00
plug :preload_commission
2019-11-18 01:09:15 +01:00
def index(conn, params) do
2025-02-07 01:06:59 +01:00
commission_params = Map.get(params, "commission", %{})
{commissions, changeset} =
case Commissions.execute_search_query(commission_params) do
{:ok, commissions} ->
commissions = Repo.paginate(commissions, conn.assigns.scrivener)
changeset = Commissions.change_search_query(%SearchQuery{})
{commissions, changeset}
{:error, changeset} ->
{[], changeset}
end
2019-11-18 01:09:15 +01:00
2020-01-11 05:20:19 +01:00
render(conn, "index.html",
title: "Commissions",
commissions: commissions,
2025-02-07 01:06:59 +01:00
changeset: changeset,
2020-01-11 05:20:19 +01:00
layout_class: "layout--wide"
)
2019-11-18 01:09:15 +01:00
end
2019-12-04 16:00:41 +01:00
defp preload_commission(conn, _opts) do
user = conn.assigns.current_user
case user do
nil ->
conn
2020-01-11 05:20:19 +01:00
user ->
2019-12-04 16:00:41 +01:00
user = Repo.preload(user, :commission)
assign(conn, :current_user, user)
2019-12-04 16:00:41 +01:00
end
end
2019-12-16 20:24:38 +01:00
end