ezcontainer_example/lib/ezcontainer_railway_web/controllers/session_controller.ex

30 lines
710 B
Elixir
Raw Normal View History

2023-10-25 03:58:10 -04:00
defmodule EzcontainerRailwayWeb.SessionController do
2023-10-25 04:48:36 -04:00
alias EzcontainerRailway.Railway
2023-10-25 03:58:10 -04:00
use EzcontainerRailwayWeb, :controller
def token(conn, %{"railway_token" => token}) do
2023-10-25 04:48:36 -04:00
case get_projects(token) do
resp when is_map(resp) ->
IO.inspect(resp)
2023-10-25 03:58:10 -04:00
conn
|> put_session(:railway_token, token)
|> assign(:railway_token, token)
|> redirect(to: "/containers")
2023-10-25 04:48:36 -04:00
nil ->
2023-10-25 03:58:10 -04:00
conn
|> put_flash(:error, "Invalid Token")
|> redirect(to: "/")
end
end
2023-10-25 04:48:36 -04:00
defp get_projects(token) do
2023-10-25 03:58:10 -04:00
resp = EzcontainerRailway.Railway.get_projects(token).body
2023-10-25 04:48:36 -04:00
if Railway.has_errors?(resp) do
nil
2023-10-25 03:58:10 -04:00
else
2023-10-25 04:48:36 -04:00
resp["data"]
2023-10-25 03:58:10 -04:00
end
end
end