lib/google_auth.ex

# TODO: ask eric about naming
defmodule PlugParadoxAuth.GoogleAuthPlug do
  import Plug.Conn

  def init(options) do
    # initialize options
    options
  end

  # this should kick off a call to a module and pipe to a response
  # https://oauth2.googleapis.com/token
  def call(conn, _opts) do
    conn
    |> check_session
    |> put_resp_header("location", ElixirAuthGoogle.generate_oauth_url(conn))
    |> send_resp(302, "text/html")
  end

  def check_session(conn) do
    # assumption: access to get_session function
    IO.puts "google auth url"
    IO.inspect ElixirAuthGoogle.generate_oauth_url(conn)
    IO.inspect System.get_env("GOOGLE_CLIENT_ID")

    IO.puts "get session:"
    IO.inspect get_session(conn, :paradox_google_auth)

    case get_session(conn, :paradox_google_auth) do
      {:ok, res} ->
        IO.inspect res
      _ ->
        # assumption: this code will create a link that uses the google credentials
        # assumption: I had access to redirect phoenix function
        # redirect(conn, to: ElixirAuthGoogle.generate_oauth_url(conn))
        # IO.puts "google auth url"
        # ElixirAuthGoogle.generate_oauth_url(conn)
        # send_resp(conn, 200, "Hello world")
        IO.puts "yolo"
    end
  end
end