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