From dc7951efaf075b7ac61b8b5dd6a2d3a59edf8832 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa?= Date: Tue, 21 Feb 2023 21:58:37 +0100 Subject: [PATCH] Add missing collections/details endpoint, based on the existing one --- src/api/core/organizations.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/api/core/organizations.rs b/src/api/core/organizations.rs index 9250f929..176bf631 100644 --- a/src/api/core/organizations.rs +++ b/src/api/core/organizations.rs @@ -26,6 +26,7 @@ pub fn routes() -> Vec { leave_organization, get_user_collections, get_org_collections, + get_org_collections_details, get_org_collection_detail, get_collection_users, put_collection_users, @@ -309,6 +310,32 @@ async fn get_org_collections(org_id: String, _headers: ManagerHeadersLoose, mut })) } +#[get("/organizations//collections/details")] +async fn get_org_collections_details(org_id: String, _headers: ManagerHeadersLoose, mut conn: DbConn) -> Json { + let mut data = Vec::new(); + + for col in Collection::find_by_organization(&org_id, &mut conn).await { + let groups: Vec = CollectionGroup::find_by_collection(&col.uuid, &mut conn) + .await + .iter() + .map(|collection_group| { + SelectionReadOnly::to_collection_group_details_read_only(collection_group).to_json() + }) + .collect(); + + let mut json_object = col.to_json(); + json_object["Groups"] = json!(groups); + json_object["Object"] = json!("collectionGroupDetails"); + data.push(json_object) + } + + Json(json!({ + "Data": data, + "Object": "list", + "ContinuationToken": null, + })) +} + async fn _get_org_collections(org_id: &str, conn: &mut DbConn) -> Value { Collection::find_by_organization(org_id, conn).await.iter().map(Collection::to_json).collect::() }