diff --git a/spaceweather_processing/app.py b/spaceweather_processing/app.py index 9970e44e2a2ad6a1570ed9005ec2da3b720d793e..2a1db227b23a5cb82f334e0238e678de521a4365 100644 --- a/spaceweather_processing/app.py +++ b/spaceweather_processing/app.py @@ -137,8 +137,14 @@ class DataProductDB: # if a &sort=<field> url parameter is given then use sort, otherwise omit it (backward compatibility) if sort: + if sort[0]=='-': + direction = -1 + sort = sort[1:] + else: + direction = 1 + results = [augment_item(item) for item in - self.db[collection_name].find(query, selected_fields).skip(skip).limit(limit).sort(sort)] + self.db[collection_name].find(query, selected_fields).skip(skip).limit(limit).sort(sort,direction)] else: results = [augment_item(item) for item in self.db[collection_name].find(query, selected_fields).skip(skip).limit(limit)] @@ -218,7 +224,7 @@ 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}/distinct_field/') +@app.get('/{collection_name}/distinct/') 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) @@ -250,6 +256,7 @@ def get_tasks(collection_name: str, request: Request, skip: int = 0, limit: int except: raise exceptions.HTTPException(status_code=422, detail='filter syntax invalid') if DB.does_collection_exist(collection_name): + print(query) return DB.get_items(collection_name, query=query, limit=limit, skip=skip, url=from_urlobj_to_url(request.url), select=select, sort=sort) else: raise exceptions.HTTPException(status_code=404, detail=f'collection {collection_name} does not exist')