From d9bc3fc9c745dc36fc626afd62770de9ff2bcb01 Mon Sep 17 00:00:00 2001 From: costero-e Date: Fri, 22 Nov 2024 15:25:39 +0100 Subject: [PATCH 1/3] creating datasets array with test dataset --- beacon/response/builder.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/beacon/response/builder.py b/beacon/response/builder.py index 9c7389c..635ad84 100644 --- a/beacon/response/builder.py +++ b/beacon/response/builder.py @@ -35,6 +35,9 @@ async def builder(self, request: Request, datasets, qparams, entry_type, entry_i complete_module='beacon.connections.'+source+'.executor' import importlib module = importlib.import_module(complete_module, package=None) + testMode = qparams.query.testMode + if testMode == True: + datasets = ['test'] datasets_docs, datasets_count, count, entity_schema, include, datasets = await module.execute_function(self, entry_type, datasets, qparams, entry_id) if include != 'NONE' and granularity == Granularity.RECORD and default_beacon_granularity == 'record': response = build_beacon_record_response_by_dataset(self, datasets, datasets_docs, datasets_count, count, qparams, entity_schema) From eaabfcfc996c8bfe15b9b6fb1cb124aad4feefd7 Mon Sep 17 00:00:00 2001 From: costero-e Date: Fri, 22 Nov 2024 16:15:53 +0100 Subject: [PATCH 2/3] added response for test dataset if testMode is true --- beacon/request/parameters.py | 11 +++++++++++ beacon/response/builder.py | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/beacon/request/parameters.py b/beacon/request/parameters.py index d159402..b1f604b 100644 --- a/beacon/request/parameters.py +++ b/beacon/request/parameters.py @@ -216,6 +216,17 @@ def from_request(self, request: Request) -> Self: self.query.request_parameters[k] = html.escape(v) elif k == 'filters': self.query.request_parameters[k] = html.escape(v) + elif k == 'testMode': + v = html.escape(v) + if v.lower() == 'true': + v = True + elif v.lower() == 'false': + v = False + else: + err = 'testMode parameter can only be either true or false value' + errcode=400 + raise_exception(err, errcode) + self.query.test_mode = v elif k in ["start", "end", "assemblyId", "referenceName", "referenceBases", "alternateBases", "variantType","variantMinLength","variantMaxLength","geneId","genomicAlleleShortForm","aminoacidChange","clinicalRelevance", "mateName"]: try: if ',' in v:# pragma: no cover diff --git a/beacon/response/builder.py b/beacon/response/builder.py index 635ad84..eb4a33f 100644 --- a/beacon/response/builder.py +++ b/beacon/response/builder.py @@ -35,7 +35,7 @@ async def builder(self, request: Request, datasets, qparams, entry_type, entry_i complete_module='beacon.connections.'+source+'.executor' import importlib module = importlib.import_module(complete_module, package=None) - testMode = qparams.query.testMode + testMode = qparams.query.test_mode if testMode == True: datasets = ['test'] datasets_docs, datasets_count, count, entity_schema, include, datasets = await module.execute_function(self, entry_type, datasets, qparams, entry_id) From a5225bdbb47328a9fe0856db7e67faec02eb8bb7 Mon Sep 17 00:00:00 2001 From: costero-e Date: Fri, 22 Nov 2024 19:13:18 +0100 Subject: [PATCH 3/3] fixing case insensitive for filtering terms --- beacon/connections/mongo/filters.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/beacon/connections/mongo/filters.py b/beacon/connections/mongo/filters.py index 276dab3..b4b8f91 100644 --- a/beacon/connections/mongo/filters.py +++ b/beacon/connections/mongo/filters.py @@ -595,6 +595,7 @@ def apply_ontology_filter(self, query: dict, filter: OntologyFilter, collection: dict_regex={} try: dict_regex['$regex']=label + dict_regex['$options']='i' except Exception: dict_regex['$regex']='' dict_id={} @@ -668,6 +669,7 @@ def apply_ontology_filter(self, query: dict, filter: OntologyFilter, collection: dict_regex={} try: dict_regex['$regex']=label + dict_regex['$options']='i' except Exception:# pragma: no cover dict_regex['$regex']='' dict_id={} @@ -696,7 +698,6 @@ def apply_ontology_filter(self, query: dict, filter: OntologyFilter, collection: query_id[query_term]=simil new_query['$or'].append(query_id) query = new_query - query=cross_query(self, query, scope, collection, request_parameters, dataset) @@ -723,6 +724,7 @@ def apply_ontology_filter(self, query: dict, filter: OntologyFilter, collection: query_filtering['$and'].append(dict_scope) dict_regex={} dict_regex['$regex']=label + dict_regex['$options']='i' dict_id={} dict_id['id']=dict_regex query_filtering['$and'].append(dict_id) @@ -1000,6 +1002,7 @@ def apply_alphanumeric_filter(self, query: dict, filter: AlphanumericFilter, col dict_id={} dict_regex={} dict_regex['$regex']=filter.id + dict_regex['$options']='i' dict_type['type']='custom' dict_id['id']=dict_regex query_filtering['$and'].append(dict_type)