lib/xadmin/router.ex

defmodule Xmeta.Xadmin.Router do
  defmacro __using__(opts) do
    unless opts[:title], do: raise("plaease set :title in  Module: #{__MODULE__}")

    quote bind_quoted: [opts: opts] do
      Xmeta.Xadmin.Env.put_module(__MODULE__, :xadmin_router)
      @config opts
      def config, do: @config
      def type, do: "router"

      def get_middleware() do
        config = config()
        middleware = config[:middleware]
        if middleware, do: middleware, else: []
      end

      defoverridable get_middleware: 0
    end
  end
end