From 51e3a6f86a8f0cf044cf6190bd278f23f2283581 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Mon, 3 Jun 2024 13:38:02 +0100 Subject: [PATCH] Add skipping mechanism for list of studies --- .../commands/populate_metagenomics_exchange.py | 3 +++ emgapi/metagenomics_exchange.py | 14 ++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/emgapi/management/commands/populate_metagenomics_exchange.py b/emgapi/management/commands/populate_metagenomics_exchange.py index da7e7c252..258c3137a 100644 --- a/emgapi/management/commands/populate_metagenomics_exchange.py +++ b/emgapi/management/commands/populate_metagenomics_exchange.py @@ -131,6 +131,9 @@ def process_to_index_and_update_records(self, analyses_to_index_and_update): mgya=annotation_job.accession, sequence_accession=sequence_accession, ) + if not response: + logging.info(f"Error occured {annotation_job}") + continue if response.ok: logging.info(f"Successfully added {annotation_job}") registry_id, metadata_match = self.mgx_api.check_analysis( diff --git a/emgapi/metagenomics_exchange.py b/emgapi/metagenomics_exchange.py index 55ad381a3..010121765 100644 --- a/emgapi/metagenomics_exchange.py +++ b/emgapi/metagenomics_exchange.py @@ -108,14 +108,20 @@ def add_analysis(self, mgya: str, sequence_accession: str): data = self.generate_metadata(mgya, sequence_accession) try: response = self.post_request(endpoint="datasets", data=data) + response.raise_for_status() # Ensure we raise for HTTP errors + return response except HTTPError as http_error: try: response_json = http_error.response.json() logging.error(f"API response content: {response_json}") - except: - pass - raise http_error - return response + except ValueError: # Catch JSON decoding errors + logging.error(f"Failed to decode JSON from response: {http_error.response.text}") + except Exception as e: + logging.error(f"Unexpected error: {e}") + + # Log the HTTP status code and the error message + logging.error(f"HTTPError occurred: {http_error}") + return None def check_analysis(self, mgya: str, sequence_accession: str, metadata=None): """Check if a sequence exists in the M. Exchange