diff options
author | Frederick Muriuki Muriithi | 2023-05-17 12:08:07 +0300 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2023-05-17 12:08:07 +0300 |
commit | f21f39ef1926dc24765626f3879cc5f81a05faad (patch) | |
tree | b0f7dd497045b3586acd90da34b2b2a7c411fa05 /gn3/auth/authorisation/users/collections/models.py | |
parent | e49153aca8175f620b8ee7c913006b5ec3e0d53a (diff) | |
download | genenetwork3-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.py | 14 |
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) |