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
|
2023-10-25 05:41:01 -04:00
|
|
|
resp when is_list(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 05:41:01 -04:00
|
|
|
case EzcontainerRailway.Railway.get_projects(token) do
|
|
|
|
|
{:error, _} ->
|
|
|
|
|
nil
|
|
|
|
|
{:ok, data} ->
|
|
|
|
|
data
|
2023-10-25 03:58:10 -04:00
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|