Skip to content
Snippets Groups Projects
Commit d94743de authored by Nico Vermaas's avatar Nico Vermaas
Browse files

sort direction

parent d80f3447
Branches nv-testing
No related tags found
No related merge requests found
...@@ -137,8 +137,14 @@ class DataProductDB: ...@@ -137,8 +137,14 @@ class DataProductDB:
# if a &sort=<field> url parameter is given then use sort, otherwise omit it (backward compatibility) # if a &sort=<field> url parameter is given then use sort, otherwise omit it (backward compatibility)
if sort: if sort:
if sort[0]=='-':
direction = -1
sort = sort[1:]
else:
direction = 1
results = [augment_item(item) for item in 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: else:
results = [augment_item(item) for item in results = [augment_item(item) for item in
self.db[collection_name].find(query, selected_fields).skip(skip).limit(limit)] 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): ...@@ -218,7 +224,7 @@ def get_tasks(collection_name: str, task_id: str, request: Request):
else: else:
raise exceptions.HTTPException(status_code=404, detail=f'Collection {collection_name} does not exist') 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): def get_tasks_distinct_field(collection_name: str, request: Request, filter: Union[str, None] = None, distinct: str = None):
print(filter) print(filter)
DB.base_url = from_urlobj_to_url(request.url) 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 ...@@ -250,6 +256,7 @@ def get_tasks(collection_name: str, request: Request, skip: int = 0, limit: int
except: except:
raise exceptions.HTTPException(status_code=422, detail='filter syntax invalid') raise exceptions.HTTPException(status_code=422, detail='filter syntax invalid')
if DB.does_collection_exist(collection_name): 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) return DB.get_items(collection_name, query=query, limit=limit, skip=skip, url=from_urlobj_to_url(request.url), select=select, sort=sort)
else: else:
raise exceptions.HTTPException(status_code=404, detail=f'collection {collection_name} does not exist') raise exceptions.HTTPException(status_code=404, detail=f'collection {collection_name} does not exist')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment