Packages

Extracts complexities of Cloudtrax into a nice module

Current section

Files

Jump to
cl_wifi lib cl_wifi.ex
Raw

lib/cl_wifi.ex

defmodule CLWiFi do
alias CLWiFi.Session
def connect!(conn) do
session_name = session_name_from_connection(conn)
{challenge, router_ip, router_port} = Session.get_sign_in_credentials(session_name)
url = CLWiFi.Cloudtrax.Responses.redirect_url(challenge, router_ip, router_port, "none", "password123")
IO.puts "CONNECTING?: #{url}"
conn
|> ExWeb.redirect_to(url)
end
def allow_access(session) do
session
end
def assign(%CLWiFi.Session{name: name} = sess, key, value) do
CLWiFi.Session.assign(name, key, value)
sess
end
def assign(%Plug.Conn{private: %{connection: session_name}} = conn, key, value) do
CLWiFi.Session.assign(session_name, key, value)
conn
end
def associate_customer(%CLWiFi.Session{name: name} = sess, customer_id) do
CLWiFi.Session.associate_customer(name, customer_id)
sess
end
def associate_customer(%Plug.Conn{private: %{connection: session_name}} = conn, customer_id) do
CLWiFi.Session.associate_customer(session_name, customer_id)
conn
end
def render(conn, module, page, assigns) do
session_name = session_name_from_connection(conn)
assigns = Map.merge(assigns, (CLWiFi.Session.get_config(session_name) || %{}))
ExWeb.render(conn, module, page, assigns)
end
def render_if_failed(conn, module, page, assigns) do
session_name = session_name_from_connection(conn)
assigns = Map.merge(assigns, (CLWiFi.Session.get_config(session_name) || %{}))
ExWeb.render_if_failed(conn, module, page, assigns)
end
def render_if_successful(conn, module, page, assigns) do
session_name = session_name_from_connection(conn)
assigns = Map.merge(assigns, (CLWiFi.Session.get_config(session_name) || %{}))
ExWeb.render_if_successful(conn, module, page, assigns)
end
def redirect_to(conn, url, params \\ %{}, body \\ nil) do
session_name = session_name_from_connection(conn)
params = Map.put(params, :connection, session_name)
ExWeb.redirect_to(conn, url, params, body)
end
def redirect_to_if_successful(conn, url, params \\ %{}, body \\ nil) do
session_name = session_name_from_connection(conn)
params = Map.put(params, :connection, session_name)
ExWeb.redirect_to_if_successful(conn, url, params, body)
end
def redirect_to_if_failed(conn, url, params \\ %{}, body \\ nil) do
session_name = session_name_from_connection(conn)
params = Map.put(params, :connection, session_name)
ExWeb.redirect_to_if_failed(conn, url, params, body)
end
def add_url_for(%{assigns: assigns} = conn, url, opts \\ []) do
session_name = session_name_from_connection(conn)
opts = Map.new(opts)
params = Map.get(opts, :params) || %{}
params = Map.put(params, :connection, session_name)
opts = Map.put(opts, :params, params)
ExWeb.add_url_for(conn, url, Map.to_list(opts))
end
defp session_name_from_connection(%{private: %{connection: session_name}}) do
session_name
end
defp session_name_from_connection(%{assigns: %{connection: session_name}}) do
session_name
end
defp session_name_from_connection(%{params: %{"connection" => session_name}}) do
session_name
end
defp session_name_from_connection(_) do
:error_not_found
end
end