Sort collection by last updated (modified) (#897)

Co-authored-by: Tessa Walsh <tessa@bitarchivist.net>
This commit is contained in:
sua yoo 2023-05-30 11:09:10 -07:00 committed by GitHub
parent 4d30a64bc9
commit 6208ead040
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 1 deletions

View File

@ -218,7 +218,7 @@ class CollectionOps:
aggregate = [{"$match": match_query}]
if sort_by:
if sort_by not in ("name", "description"):
if sort_by not in ("modified", "name", "description"):
raise HTTPException(status_code=400, detail="invalid_sort_by")
if sort_direction not in (1, -1):
raise HTTPException(status_code=400, detail="invalid_sort_direction")

View File

@ -354,6 +354,30 @@ def test_filter_sort_collections(
assert items[1]["name"] == SECOND_COLLECTION_NAME
assert items[1].get("description") is None
# Test sorting by modified, ascending
r = requests.get(
f"{API_PREFIX}/orgs/{default_org_id}/collections?sortBy=modified",
headers=crawler_auth_headers,
)
assert r.status_code == 200
data = r.json()
assert data["total"] == 2
items = data["items"]
assert items[0]["modified"] <= items[1]["modified"]
# Test sorting by modified, descending
r = requests.get(
f"{API_PREFIX}/orgs/{default_org_id}/collections?sortBy=modified&sortDirection=-1",
headers=crawler_auth_headers,
)
assert r.status_code == 200
data = r.json()
assert data["total"] == 2
items = data["items"]
assert items[0]["modified"] >= items[1]["modified"]
def test_delete_collection(crawler_auth_headers, default_org_id, crawler_crawl_id):
# Delete second collection