From 82ae0189905bca38d382401a4b4f43f35a01c2b8 Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Mon, 20 Dec 2021 16:54:28 +0000 Subject: [PATCH] add code to search endpoints to handle filters #260 - This code has been added to manually test how the filters are working looking at an entire request from start to finish --- datagateway_api/src/search_api/filters.py | 1 + datagateway_api/src/search_api/helpers.py | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/datagateway_api/src/search_api/filters.py b/datagateway_api/src/search_api/filters.py index c83538c1..e1ccfa7e 100644 --- a/datagateway_api/src/search_api/filters.py +++ b/datagateway_api/src/search_api/filters.py @@ -50,6 +50,7 @@ def get_icat_mapping(self, panosc_entity_name, field_name): :return: Tuple containing the PaNOSC entity name (which will change from the input if a related entity is found) and the ICAT field name mapping/translation from the PaNOSC data model + :raises FilterError: If a valid mapping cannot be found """ try: diff --git a/datagateway_api/src/search_api/helpers.py b/datagateway_api/src/search_api/helpers.py index 62f9ac45..67e7a718 100644 --- a/datagateway_api/src/search_api/helpers.py +++ b/datagateway_api/src/search_api/helpers.py @@ -1,5 +1,7 @@ import logging +from datagateway_api.src.datagateway_api.filter_order_handler import FilterOrderHandler +from datagateway_api.src.search_api.query import SearchAPIQuery from datagateway_api.src.search_api.session_handler import ( client_manager, SessionHandler, @@ -13,6 +15,16 @@ # given to these functions @client_manager def get_search(endpoint_name, entity_name, filters=[]): + log.debug("Entity Name: %s, Filters: %s", entity_name, filters) + + query = SearchAPIQuery(entity_name) + + filter_handler = FilterOrderHandler() + filter_handler.add_filters(filters) + filter_handler.add_query_to_where_filters(query) + filter_handler.apply_filters(query) + + log.debug("Python ICAT Query: %s", query.query.query) # TODO - `getApiVersion()` used as a placeholder for testing client handling # Replace with endpoint functionality when implementing the endpoints return SessionHandler.client.getApiVersion()