Clone
require_player.ex
defmodule PiDayWeb.Plugs.RequirePlayer do
  import Plug.Conn
  import Phoenix.Controller

  def init(opts), do: opts

  def call(conn, _opts) do
    token = get_session(conn, :player_token)

    if token do
      case PiDay.Game.get_player_by_token(token) do
        nil ->
          conn |> redirect(to: "/") |> halt()

        player ->
          assign(conn, :current_player, player)
      end
    else
      conn |> redirect(to: "/") |> halt()
    end
  end
end