defmodule Spotify.Cookies do
@moduledoc """
Convenience setters and getters for auth cookies
"""
@doc """
Sets the refresh token and access token and returns the conn.
## Example:
credentials = %Spotify.Credentials{refresh_token: rt, access_token: at}
Spotify.Cookies.set_cookies(conn, credentials)
"""
def set_cookies(conn, credentials) do
conn
|> set_refresh_cookie(credentials.refresh_token)
|> set_access_cookie(credentials.access_token)
end
@doc """
Sets the refresh token
"""
def set_refresh_cookie(conn, string)
def set_refresh_cookie(conn, nil), do: conn
def set_refresh_cookie(conn, refresh_token) do
Plug.Conn.put_resp_cookie(conn, "spotify_refresh_token", refresh_token)
end
@doc """
Sets the access token
"""
def set_access_cookie(conn, string)
def set_access_cookie(conn, nil), do: conn
def set_access_cookie(conn, access_token) do
Plug.Conn.put_resp_cookie(conn, "spotify_access_token", access_token)
end
@doc """
Gets the access token
"""
def get_access_token(conn)
def get_access_token(conn) do
conn.cookies["spotify_access_token"]
end
@doc """
Gets the access token
"""
def get_refresh_token(conn)
def get_refresh_token(conn) do
conn.cookies["spotify_refresh_token"]
end
end