27 lines
644 B
Elixir
27 lines
644 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)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|