Backpex.Router (Backpex v0.14.0)
View SourceProvides LiveView routing for Backpex resources.
Summary
Functions
Checks whether the to path is the same as the current path
Finds the cookie path by the given socket.
Filters actions
based on only
and except
parameters.
Finds the raw path by the given socket and module and puts the path params into the raw path.
Defines "RESTful" routes for a Backpex resource.
Checks whether item
is member of list
and returns default
value if list is nil
or empty.
Replace path params with actual params
Functions
Checks whether the to path is the same as the current path
Examples
iex> Backpex.Router.active?(URI.new!("https://example.com/admin/events"), "/admin/events")
true
iex> Backpex.Router.active?(URI.new!("https://example.com/admin/events"), "/admin/users")
false
Finds the cookie path by the given socket.
Filters actions
based on only
and except
parameters.
Examples
iex> Backpex.Router.filter_actions([:index, :edit, :show], [:index], nil)
[:index]
iex> Backpex.Router.filter_actions([:index, :edit, :show], nil, [:index])
[:edit, :show]
iex> Backpex.Router.filter_actions([:index, :edit, :show], nil, nil)
[:index, :edit, :show]
iex> Backpex.Router.filter_actions([:index, :edit, :show], [], [])
[:index, :edit, :show]
Finds the raw path by the given socket and module and puts the path params into the raw path.
Defines "RESTful" routes for a Backpex resource.
Options
:only
- Only generate routes for these actions, e.g.[:index, :show]
The default value isnil
.:except
- Generate routes for all actions except these, e.g.[:edit]
The default value isnil
.:container
(term/0
) - An optional tuple for the HTML tag and DOM attributes for the LiveView container The default value isnil
.:as
- Optionally configures the named helper The default value isnil
.:metadata
- A map to optional feed metadata used on telemetry events and route info The default value isnil
.:private
- An optional map of private data to put in the plug connection The default value isnil
.
Example
defmodule MyAppWeb.Router
import Backpex.Router
scope "/admin", MyAppWeb do
pipe_through :browser
live_session :default, on_mount: Backpex.InitAssigns do
live_resources("/users", UserLive, only: [:index])
live_resources("/users", UserLive, only: [:index], metadata: %{route_name: :foo, access: :user}
end
end
end
Checks whether item
is member of list
and returns default
value if list is nil
or empty.
Examples
iex> Backpex.Router.member?([:index], :index, true)
true
iex> Backpex.Router.member?([:edit], :index, true)
false
iex> Backpex.Router.member?([], :index, true)
true
iex> Backpex.Router.member?(nil, :index, true)
true
Replace path params with actual params
Examples
iex> Backpex.Router.put_route_params("/:param1/events/:param2/show", %{"param1" => "123", "param2" => "xyz", "test" => "abcdef"})
"/123/events/xyz/show"
iex> Backpex.Router.put_route_params("/:param1/events/:id/edit", %{"param1" => "123", "id" => "xyz"})
"/123/events/xyz/edit"
iex> Backpex.Router.put_route_params("/:param1/events/:id/edit", %{"param1" => "123", "id" => "hällö / world"})
"/123/events/h%C3%A4ll%C3%B6+%2F+world/edit"
iex> Backpex.Router.put_route_params("/events", %{"param1" => "123", "param2" => "xyz"})
"/events"
iex> Backpex.Router.put_route_params("/events", %{})
"/events"
iex> Backpex.Router.put_route_params("/:id/users", %{})
** (ArgumentError) Cannot build route '/:id/users' because required parameter 'id' is missing in the list of params.