diff options
author | Danglewood <85772166+deeleeramone@users.noreply.github.com> | 2024-05-01 14:15:26 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-01 21:15:26 +0000 |
commit | c45997567c81fdc39c3d6e232ad4f8a0690b81f1 (patch) | |
tree | 36300bd4311e973c4d88e5aabe788f252558468c | |
parent | 9a02e501f8f4ba2dc608e4824dc46d90898fc260 (diff) |
[BugFix] Intrinio EquityPriceHistorical - Return Error Message When Invalid Key (#6357)
* return error message when invalid request
* mypy
-rw-r--r-- | openbb_platform/providers/intrinio/openbb_intrinio/models/equity_historical.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/openbb_platform/providers/intrinio/openbb_intrinio/models/equity_historical.py b/openbb_platform/providers/intrinio/openbb_intrinio/models/equity_historical.py index ff5f0893258..809bef70337 100644 --- a/openbb_platform/providers/intrinio/openbb_intrinio/models/equity_historical.py +++ b/openbb_platform/providers/intrinio/openbb_intrinio/models/equity_historical.py @@ -15,10 +15,11 @@ from openbb_core.provider.utils.descriptions import ( DATA_DESCRIPTIONS, QUERY_DESCRIPTIONS, ) +from openbb_core.provider.utils.errors import EmptyDataError from openbb_core.provider.utils.helpers import ( ClientResponse, ClientSession, - amake_requests, + amake_request, get_querystring, ) from pydantic import Field, PrivateAttr, model_validator @@ -72,9 +73,9 @@ class IntrinioEquityHistoricalQueryParams(EquityHistoricalQueryParams): } if values.interval in ["1m", "5m", "10m", "15m", "30m", "60m", "1h"]: - values._interval_size = values.interval + values._interval_size = values.interval # type: ignore elif values.interval in ["1d", "1W", "1M", "1Q", "1Y"]: - values._frequency = frequency_dict[values.interval] + values._frequency = frequency_dict[values.interval] # type: ignore return values @@ -195,7 +196,6 @@ class IntrinioEquityHistoricalFetcher( ) -> List[Dict]: """Return the raw data from the Intrinio endpoint.""" api_key = credentials.get("intrinio_api_key") if credentials else "" - base_url = f"https://api-v2.intrinio.com/securities/{query.symbol}/prices" query_str = get_querystring( query.model_dump(by_alias=True), ["symbol", "interval"] @@ -211,6 +211,10 @@ class IntrinioEquityHistoricalFetcher( async def callback(response: ClientResponse, session: ClientSession) -> list: """Return the response.""" init_response = await response.json() + if "error" in init_response: + raise RuntimeError( + f"Intrinio Error Message -> {init_response['error']}: {init_response.get('message')}" + ) all_data: list = init_response.get(data_key, []) @@ -226,7 +230,7 @@ class IntrinioEquityHistoricalFetcher( url = f"{base_url}&{query_str}&api_key={api_key}" - return await amake_requests([url], callback, **kwargs) + return await amake_request(url, response_callback=callback, **kwargs) @staticmethod def transform_data( @@ -235,6 +239,8 @@ class IntrinioEquityHistoricalFetcher( **kwargs: Any, ) -> List[IntrinioEquityHistoricalData]: """Return the transformed data.""" + if not data: + raise EmptyDataError("The request was returned empty.") date_col = ( "time" if query.interval in ["1m", "5m", "10m", "15m", "30m", "60m", "1h"] |