Current section

Files

Jump to
snowhite lib snowhite builder controller.ex
Raw

lib/snowhite/builder/controller.ex

defmodule Snowhite.Builder.Controller do
defmacro build(_opts \\ []) do
quote do
defmodule Controller do
use Phoenix.Controller, namespace: SnowhiteWeb
import Plug.Conn
require Snowhite.Helpers.Module
alias SnowhiteWeb.Plug.PutProfile
@parent_module Snowhite.Helpers.Module.parent_module(__MODULE__)
plug(:put_profile)
plug(:put_view, SnowhiteWeb.Profile.View)
plug(:put_root_layout, {SnowhiteWeb.LayoutView, :root})
plug(:put_layout, {SnowhiteWeb.Layouts.View, :app})
plug(:put_root_layout, {SnowhiteWeb.Layouts.View, :root})
def put_profile(conn, _opts) do
PutProfile.call(conn, PutProfile.init(profiles: @parent_module.profiles()))
end
def index(%Plug.Conn{assigns: %{profile: profile}} = conn, params)
when not is_nil(profile) do
conn
|> render("index.html", params: params, profile: profile)
end
end
end
end
end