Current section
Files
Jump to
Current section
Files
lib/exq_ui_web/router.ex
defmodule ExqUIWeb.Router do
defmacro live_exq_ui(path, opts \\ []) do
quote bind_quoted: binding() do
scope path, alias: false, as: false do
{session_name, session_opts, route_opts} = ExqUIWeb.Router.__options__(opts)
import Phoenix.LiveView.Router, only: [live: 4, live_session: 3]
live_session session_name, session_opts do
live "/", ExqUIWeb.DashboardLive, :root, route_opts
live "/queues", ExqUIWeb.QueueLive.Index, :index, route_opts
live "/queues/:name", ExqUIWeb.QueueLive.Show, :index, route_opts
live "/busy", ExqUIWeb.BusyLive.Index, :index, route_opts
live "/retries", ExqUIWeb.RetryLive.Index, :index, route_opts
live "/retries/:score/:jid", ExqUIWeb.RetryLive.Show, :index, route_opts
live "/dead", ExqUIWeb.DeadLive.Index, :index, route_opts
live "/dead/:score/:jid", ExqUIWeb.DeadLive.Show, :index, route_opts
live "/scheduled", ExqUIWeb.ScheduledLive.Index, :index, route_opts
live "/scheduled/:score/:jid", ExqUIWeb.ScheduledLive.Show, :index, route_opts
end
end
end
end
@doc false
def __options__(options) do
live_socket_path = Keyword.get(options, :live_socket_path, "/live")
{
options[:live_session_name] || :exq_ui,
[
session: {__MODULE__, :__session__, []},
root_layout: {ExqUIWeb.LayoutView, :root}
],
[
private: %{live_socket_path: live_socket_path},
as: :exq_ui
]
}
end
@doc false
def __session__(_conn) do
%{}
end
end