ezcontainer_example/lib/ezcontainer_railway_web/plugs/railway_check.ex
2023-10-25 23:19:22 -04:00

26 lines
647 B
Elixir

defmodule EzcontainerRailwayWeb.RailwayCheck do
alias EzcontainerRailway.Projects
alias EzcontainerRailway.Railway
alias Phoenix.Controller
import Plug.Conn
def init(default), do: default
def call(conn, _opts) do
case get_session(conn, :railway_token) do
nil ->
conn
|> Controller.put_flash(:error, "You need a railway token")
|> Controller.redirect(to: "/")
token ->
p =
case Projects.get_project_by_token(token) do
nil -> Projects.create_project(token)
p -> p
end
conn
|> put_session(:project_id, p.id)
end
end
end