async def _geolocation_extract(response): body = await response.json() if response.status in (200, 404): return body try: error = body['error']['errors'][0]['reason'] except KeyError: error = None if response.status == 403: raise exceptions._OverQueryLimit(response.status, error) else: raise exceptions.ApiError(response.status, error)
def _geolocation_extract(response): body = response.json() if response.status_code in (200, 404): return body try: error = body["error"]["errors"][0]["reason"] except KeyError: error = None if response.status_code == 403: raise exceptions._OverQueryLimit(response.status_code, error) else: raise exceptions.ApiError(response.status_code, error)
def _geolocation_extract(response): """ Mimics the exception handling logic in ``client._get_body``, but for geolocation which uses a different response format. """ body = response.json() if response.status_code in (200, 404): return body elif response.status_code == 403: raise exceptions._RetriableRequest() else: try: error = body["error"]["errors"][0]["reason"] except KeyError: error = None raise exceptions.ApiError(response.status_code, error)