diff --git a/spaceweather_processing/app.py b/spaceweather_processing/app.py index 4f57c7c027baf80e846853bd77bb2bf3d2ec29c5..9970e44e2a2ad6a1570ed9005ec2da3b720d793e 100644 --- a/spaceweather_processing/app.py +++ b/spaceweather_processing/app.py @@ -118,19 +118,9 @@ class DataProductDB: item = augment_item(item) return item - def get_tasks_distinct_field(self, collection_name, query, select=None, distinct=None): - - n_results = self.db[collection_name].count_documents(query) - print(query) - selected_fields = {} - - for item in select: - selected_fields[item] = 1 - - if distinct: - results = self.db[collection_name].find(query, selected_fields).distinct(distinct) - - return {'count': n_results, 'results': results} + def get_distinct_field(self, collection_name, query, distinct=None): + results = self.db[collection_name].find(query,distinct).distinct(distinct) + return {'results': results} def get_items(self, collection_name, query, skip=0, limit=100, url=None, select=None, sort=None): @@ -228,22 +218,20 @@ def get_tasks(collection_name: str, task_id: str, request: Request): else: raise exceptions.HTTPException(status_code=404, detail=f'Collection {collection_name} does not exist') -@app.get('/{collection_name}/tasks/distinct_field/') -def get_tasks_distinct_field(collection_name: str, request: Request, filter: Union[str, None] = None, select: Union[str, None] = None, distinct: str = None): +@app.get('/{collection_name}/distinct_field/') +def get_tasks_distinct_field(collection_name: str, request: Request, filter: Union[str, None] = None, distinct: str = None): + print(filter) DB.base_url = from_urlobj_to_url(request.url) try: if filter: query = json.loads(filter) else: query = {} - if select: - select = json.loads(select) - else: - select = [] + except: raise exceptions.HTTPException(status_code=422, detail='filter syntax invalid') if DB.does_collection_exist(collection_name): - return DB.get_tasks_distinct_field(collection_name, query=query, select=select, distinct=distinct) + return DB.get_distinct_field(collection_name, query=query, distinct=distinct) else: raise exceptions.HTTPException(status_code=404, detail=f'collection {collection_name} does not exist')