Skip to content

Commit 260d7d0

Browse files
committed
errors raised for unique instances with clear error message
1 parent 3c3c001 commit 260d7d0

File tree

1 file changed

+31
-5
lines changed

1 file changed

+31
-5
lines changed

src/handlers/api.py

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from builtins import ValueError, isinstance
12
import asyncio
23
import json
34
import logging
@@ -22,6 +23,7 @@
2223
from utils.metakg.biolink_helpers import get_expanded_values
2324
from utils.notification import SlackNewAPIMessage, SlackNewTranslatorAPIMessage
2425
from utils.metakg.parser import MetaKGParser
26+
from utils.metakg.metakg_errors import MetadataRetrievalError
2527

2628
logger = logging.getLogger("smartAPI")
2729

@@ -806,9 +808,21 @@ async def get(self, *args, **kwargs):
806808
except ValueError:
807809
raise HTTPError(400, reason=f"Unexcepted value for bte, {self.get_argument('bte')}. Please enter integer, 0 or 1.")
808810

809-
# Get data
810-
trapi_data = parser.get_TRAPI_metadatas(data=None, url=url)
811-
nontrapi_data = parser.get_non_TRAPI_metadatas(data=None, url=url)
811+
try:
812+
trapi_data = parser.get_TRAPI_metadatas(data=None, url=url)
813+
except MetadataRetrievalError as retrieve_err:
814+
raise HTTPError(retrieve_err.status_code, reason=retrieve_err.message)
815+
except DownloadError:
816+
raise HTTPError(400, reason="There was an error downloading the data from the given input.")
817+
818+
# Get non-TRAPI metadata
819+
try:
820+
nontrapi_data = parser.get_non_TRAPI_metadatas(data=None, url=url)
821+
except MetadataRetrievalError as retrieve_err:
822+
raise HTTPError(retrieve_err.status_code, reason=retrieve_err.message)
823+
except DownloadError:
824+
raise HTTPError(400, reason="There was an error downloading the data from the given input.")
825+
812826
combined_data = trapi_data + nontrapi_data
813827

814828
# Apply filtering -- if data found
@@ -854,8 +868,20 @@ async def post(self, *args, **kwargs):
854868
raise HTTPError(400, reason=f"Unexcepted value for bte, {self.get_argument('bte')}. Please enter integer, 0 or 1.")
855869

856870
# Process metadata
857-
trapi_data = parser.get_TRAPI_metadatas(data=data)
858-
nontrapi_data = parser.get_non_TRAPI_metadatas(data=data)
871+
try:
872+
trapi_data = parser.get_TRAPI_metadatas(data=data)
873+
except MetadataRetrievalError as retrieve_err:
874+
raise HTTPError(retrieve_err.status_code, reason=retrieve_err.message)
875+
except DownloadError:
876+
raise HTTPError(400, reason="There was an error downloading the data from the given input.")
877+
878+
try:
879+
nontrapi_data = parser.get_non_TRAPI_metadatas(data=data)
880+
except MetadataRetrievalError as retrieve_err:
881+
raise HTTPError(retrieve_err.status_code, reason=retrieve_err.message)
882+
except DownloadError:
883+
raise HTTPError(400, reason="There was an error downloading the data from the given input.")
884+
859885
combined_data = trapi_data + nontrapi_data
860886

861887
# Apply filtering -- if data found

0 commit comments

Comments
 (0)