if Code.ensure_loaded?(Plug) do
defmodule WeChat.Plug.Router do
@moduledoc false
use Plug.Router, copy_opts_to_assign: :wechat_opts
alias WeChat.Url
alias WeChat.Plug.{
FetchAccessToken,
RefreshAccessToken,
FetchComponentAccessToken,
RefreshComponentAccessToken,
FetchTicket
}
plug(:match)
plug(:dispatch)
get Url.to_fetch_access_token() do
Plug.run(conn, [{FetchAccessToken, conn.assigns.wechat_opts}])
end
post Url.to_refresh_access_token() do
Plug.run(conn, [{RefreshAccessToken, conn.assigns.wechat_opts}])
end
get Url.to_fetch_component_access_token() do
Plug.run(conn, [{FetchComponentAccessToken, conn.assigns.wechat_opts}])
end
post Url.to_refresh_component_access_token() do
Plug.run(conn, [{RefreshComponentAccessToken, conn.assigns.wechat_opts}])
end
get Url.to_fetch_ticket() do
Plug.run(conn, [{FetchTicket, conn.assigns.wechat_opts}])
end
match _ do
conn
end
end
end