From b0f4b1358abb309656eb7b206cc025b516254094 Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Thu, 13 Jan 2022 17:11:22 +0000 Subject: [PATCH] refactor: change method signatures of search API endpoint helpers #268 - The endpoint name won't actually be used in the endpoint code, only the entity name will be - Also changed `get_with_id()` to `get_with_pid()` as all use cases will be with a persistent identifier --- datagateway_api/src/api_start_utils.py | 18 +++++------------ .../src/resources/search_api_endpoints.py | 20 +++++++++---------- datagateway_api/src/search_api/helpers.py | 10 +++++----- 3 files changed, 20 insertions(+), 28 deletions(-) diff --git a/datagateway_api/src/api_start_utils.py b/datagateway_api/src/api_start_utils.py index 5972fc15..dd8b0437 100644 --- a/datagateway_api/src/api_start_utils.py +++ b/datagateway_api/src/api_start_utils.py @@ -233,9 +233,7 @@ def create_api_endpoints(flask_app, api, spec): } for endpoint_name, entity_name in search_api_entity_endpoints.items(): - get_search_endpoint_resource = get_search_endpoint( - endpoint_name, entity_name, - ) + get_search_endpoint_resource = get_search_endpoint(entity_name) api.add_resource( get_search_endpoint_resource, f"{search_api_extension}/{endpoint_name}", @@ -243,9 +241,7 @@ def create_api_endpoints(flask_app, api, spec): ) spec.path(resource=get_search_endpoint_resource, api=api) - get_single_endpoint_resource = get_single_endpoint( - endpoint_name, entity_name, - ) + get_single_endpoint_resource = get_single_endpoint(entity_name) api.add_resource( get_single_endpoint_resource, f"{search_api_extension}/{endpoint_name}/", @@ -253,9 +249,7 @@ def create_api_endpoints(flask_app, api, spec): ) spec.path(resource=get_single_endpoint_resource, api=api) - get_number_count_endpoint_resource = get_number_count_endpoint( - endpoint_name, entity_name, - ) + get_number_count_endpoint_resource = get_number_count_endpoint(entity_name) api.add_resource( get_number_count_endpoint_resource, f"{search_api_extension}/{endpoint_name}/count", @@ -263,9 +257,7 @@ def create_api_endpoints(flask_app, api, spec): ) spec.path(resource=get_number_count_endpoint_resource, api=api) - get_files_endpoint_resource = get_files_endpoint( - search_api_entity_endpoints["datasets"], "datasets", - ) + get_files_endpoint_resource = get_files_endpoint("File") api.add_resource( get_files_endpoint_resource, f"{search_api_extension}/datasets//files", @@ -274,7 +266,7 @@ def create_api_endpoints(flask_app, api, spec): spec.path(resource=get_files_endpoint_resource, api=api) get_number_count_files_endpoint_resource = get_number_count_files_endpoint( - search_api_entity_endpoints["datasets"], "datasets", + "File", ) api.add_resource( get_number_count_files_endpoint_resource, diff --git a/datagateway_api/src/resources/search_api_endpoints.py b/datagateway_api/src/resources/search_api_endpoints.py index 180ab7bd..586fb2f3 100644 --- a/datagateway_api/src/resources/search_api_endpoints.py +++ b/datagateway_api/src/resources/search_api_endpoints.py @@ -14,7 +14,7 @@ log = logging.getLogger() -def get_search_endpoint(endpoint_name, entity_name): +def get_search_endpoint(entity_name): """ TODO - Add docstring """ @@ -23,7 +23,7 @@ class Endpoint(Resource): def get(self): filters = get_filters_from_query_string("search_api", entity_name) log.debug("Filters: %s", filters) - return get_search(endpoint_name, entity_name, filters), 200 + return get_search(entity_name, filters), 200 # TODO - Add `get.__doc__` @@ -31,7 +31,7 @@ def get(self): return Endpoint -def get_single_endpoint(endpoint_name, entity_name): +def get_single_endpoint(entity_name): """ TODO - Add docstring """ @@ -40,7 +40,7 @@ class EndpointWithID(Resource): def get(self, pid): filters = get_filters_from_query_string("search_api", entity_name) log.debug("Filters: %s", filters) - return get_with_id(entity_name, pid), 200 + return get_with_pid(entity_name, pid, filters), 200 # TODO - Add `get.__doc__` @@ -48,7 +48,7 @@ def get(self, pid): return EndpointWithID -def get_number_count_endpoint(endpoint_name, entity_name): +def get_number_count_endpoint(entity_name): """ TODO - Add docstring """ @@ -58,7 +58,7 @@ def get(self): # Only WHERE included on count endpoints filters = get_filters_from_query_string("search_api", entity_name) log.debug("Filters: %s", filters) - return get_count(entity_name), 200 + return get_count(entity_name, filters), 200 # TODO - Add `get.__doc__` @@ -66,7 +66,7 @@ def get(self): return CountEndpoint -def get_files_endpoint(endpoint_name, entity_name): +def get_files_endpoint(entity_name): """ TODO - Add docstring """ @@ -75,7 +75,7 @@ class FilesEndpoint(Resource): def get(self, pid): filters = get_filters_from_query_string("search_api", entity_name) log.debug("Filters: %s", filters) - return get_files(entity_name), 200 + return get_files(entity_name, pid, filters), 200 # TODO - Add `get.__doc__` @@ -83,7 +83,7 @@ def get(self, pid): return FilesEndpoint -def get_number_count_files_endpoint(endpoint_name, entity_name): +def get_number_count_files_endpoint(entity_name): """ TODO - Add docstring """ @@ -93,7 +93,7 @@ def get(self, pid): # Only WHERE included on count endpoints filters = get_filters_from_query_string("search_api", entity_name) log.debug("Filters: %s", filters) - return get_files_count(entity_name, pid) + return get_files_count(entity_name, filters, pid) # TODO - Add `get.__doc__` diff --git a/datagateway_api/src/search_api/helpers.py b/datagateway_api/src/search_api/helpers.py index cf67833d..ffc67bb8 100644 --- a/datagateway_api/src/search_api/helpers.py +++ b/datagateway_api/src/search_api/helpers.py @@ -12,7 +12,7 @@ @client_manager -def get_search(endpoint_name, entity_name, filters): +def get_search(entity_name, filters): log.debug("Entity Name: %s, Filters: %s", entity_name, filters) query = SearchAPIQuery(entity_name) @@ -28,20 +28,20 @@ def get_search(endpoint_name, entity_name, filters): @client_manager -def get_with_id(endpoint_name, entity_name, id_, filters): +def get_with_pid(entity_name, pid, filters): pass @client_manager -def get_count(endpoint_name, entity_name, filters): +def get_count(entity_name, filters): pass @client_manager -def get_files(endpoint_name, entity_name, filters): +def get_files(entity_name, pid, filters): pass @client_manager -def get_files_count(endpoint_name, entity_name, id_, filters): +def get_files_count(entity_name, filters, pid): pass