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_content_type("text/plain")
    # |> send_resp(200, "Hello world")
  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")

    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")
    end
  end
end