26 lines
647 B
Elixir
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
|