Current section

Files

Jump to
xmeta lib xapi phx.ex
Raw

lib/xapi/phx.ex

defmodule Xmeta.Xapi.Phx do
def call_api(conn, params) do
site = module_name_upcase(params["xapi_site"])
router = module_name_upcase(params["xapi_router"])
view = module_name_upcase(params["xapi_view"])
mod =
Module.concat(["Xapi", site, router, view])
apply(mod, :call, [conn, format_params(conn.params)])
end
defp format_params(params) do
params
|> Map.delete("glob")
|>Map.delete("xapi_site")
|>Map.delete("xapi_router")
|>Map.delete("xapi_view")
end
defp module_name_upcase(name) do
{first,last} = String.next_grapheme(name)
String.upcase(first) <> last
end
end