aboutsummaryrefslogtreecommitdiff
path: root/gn3/auth/authorisation/users/collections/models.py
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2023-05-17 12:08:07 +0300
committerFrederick Muriuki Muriithi2023-05-17 12:08:07 +0300
commitf21f39ef1926dc24765626f3879cc5f81a05faad (patch)
treeb0f7dd497045b3586acd90da34b2b2a7c411fa05 /gn3/auth/authorisation/users/collections/models.py
parente49153aca8175f620b8ee7c913006b5ec3e0d53a (diff)
downloadgenenetwork3-f21f39ef1926dc24765626f3879cc5f81a05faad.tar.gz
auth: Delete collections by ID.
Diffstat (limited to 'gn3/auth/authorisation/users/collections/models.py')
-rw-r--r--gn3/auth/authorisation/users/collections/models.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/gn3/auth/authorisation/users/collections/models.py b/gn3/auth/authorisation/users/collections/models.py
index a0c3ebf..eaee9af 100644
--- a/gn3/auth/authorisation/users/collections/models.py
+++ b/gn3/auth/authorisation/users/collections/models.py
@@ -145,3 +145,17 @@ def get_collection(rconn: Redis, user: User, collection_id: UUID) -> dict:
err.error_code = 513
raise err
return colls[0]
+
+def delete_collections(rconn: Redis,
+ user: User,
+ collection_ids: tuple[UUID, ...]) -> tuple[dict, ...]:
+ """
+ Delete collections with the given `collection_ids` returning the deleted
+ collections.
+ """
+ ucolls = user_collections(rconn, user)
+ save_collections(
+ rconn,
+ user,
+ tuple(coll for coll in ucolls if coll["id"] not in collection_ids))
+ return tuple(coll for coll in ucolls if coll["id"] in collection_ids)