|
| 1 | +from builtins import ValueError, isinstance |
1 | 2 | import asyncio |
2 | 3 | import json |
3 | 4 | import logging |
|
22 | 23 | from utils.metakg.biolink_helpers import get_expanded_values |
23 | 24 | from utils.notification import SlackNewAPIMessage, SlackNewTranslatorAPIMessage |
24 | 25 | from utils.metakg.parser import MetaKGParser |
| 26 | +from utils.metakg.metakg_errors import MetadataRetrievalError |
25 | 27 |
|
26 | 28 | logger = logging.getLogger("smartAPI") |
27 | 29 |
|
@@ -806,9 +808,21 @@ async def get(self, *args, **kwargs): |
806 | 808 | except ValueError: |
807 | 809 | raise HTTPError(400, reason=f"Unexcepted value for bte, {self.get_argument('bte')}. Please enter integer, 0 or 1.") |
808 | 810 |
|
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 | + |
812 | 826 | combined_data = trapi_data + nontrapi_data |
813 | 827 |
|
814 | 828 | # Apply filtering -- if data found |
@@ -854,8 +868,20 @@ async def post(self, *args, **kwargs): |
854 | 868 | raise HTTPError(400, reason=f"Unexcepted value for bte, {self.get_argument('bte')}. Please enter integer, 0 or 1.") |
855 | 869 |
|
856 | 870 | # 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 | + |
859 | 885 | combined_data = trapi_data + nontrapi_data |
860 | 886 |
|
861 | 887 | # Apply filtering -- if data found |
|
0 commit comments