Source code for here_location_services.platform.apis.aaa_oauth2_api

# Copyright (C) 2019-2021 HERE Europe B.V.
# SPDX-License-Identifier: Apache-2.0
"""
This module contains an :class:`AAAOauth2ApiClient` class to perform oauth API operations.

The HERE API reference documentation used in this module can be found here:
|iam_api_reference|

.. |iam_api_reference| raw:: html

   <a href="https://developer.here.com/documentation/identity-access-management/api-reference-swagger.html">IAM API Reference</a>
"""  # noqa

from typing import Dict, Optional

from requests_oauthlib import OAuth1

from here_location_services.platform.apis.api import Api


[docs]class AAAOauth2Api(Api): """ This class provides access to HERE platform AAA Oauth2 APIs. """
[docs] def __init__( self, base_url: str, proxies: Optional[dict] = None, ): self.base_url = base_url self.proxies: Optional[Dict] = proxies super().__init__( access_token=None, proxies=self.proxies, )
[docs] def request_scoped_access_token(self, oauth: OAuth1, data: str) -> Dict: # type: ignore[return] # noqa E501 """ Request scoped access oauth2 token from platform. :param oauth: oauth1 configuration. :param data: a string which represents request body. :return: a json with scoped access token. """ resp = self.post( url=self.base_url, headers={"Content-Type": "application/x-www-form-urlencoded"}, data=data, auth=oauth, ) if resp.status_code == 200: resp_dict: dict = resp.json() return resp_dict else: self.raise_response_exception(resp)