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

sort direction

parent d80f3447
No related branches found
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