lib/ueberauth/strategy/amco/api/access_token.ex
defmodule Ueberauth.Strategy.Amco.API.AccessToken do
alias OAuth2.Response
alias Ueberauth.Strategy.Amco.OAuth
def authorize(token) do
OAuth.authorize_access_token(token)
|> process_response()
end
defp process_response({:ok, %Response{status_code: 200} = response}) do
case response.body do
%{"active" => true} -> {:ok, response.body}
%{"active" => false} -> {:error, :access_token_expired}
end
end
defp process_response(_), do: {:error, :access_token_invalid}
end