ezcontainer_example/lib/ezcontainer_railway_web/plugs/railway_check.ex

27 lines
647 B
Elixir
Raw Normal View History

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
2023-10-25 23:19:22 -04:00
|> put_session(:project_id, p.id)
end
end
end