if Code.ensure_loaded?(Plug) do defmodule GlificWeb.EnsurePlug do alias Plug.Conn @moduledoc """ This is a basic plug that ensure the organization is loaded. To plug it on your router, you can use: plug GlificWeb.EnsurePlug, callback: &OrganizationHelper.callback/2 failure_callback: &OrganizationHelper.failure_callback/2 See `GlificWeb.EnsurePlugConfig` to check all the allowed `config` flags. """ alias GlificWeb.EnsurePlugConfig alias GlificWeb.Plug @doc false @spec init(any) :: %{:__struct__ => atom, optional(atom) => any} def init(opts), do: struct(EnsurePlugConfig, opts) @doc false @spec call(Conn.t(), map()) :: Conn.t() def call(conn, config), do: Plug.ensure_organization(conn, config) end end