commit dc7951efaf075b7ac61b8b5dd6a2d3a59edf8832
parent 06e14fea55be1dd6d24ca9b98f32bb800295e246
Author: Daniel GarcĂa <dani-garcia@users.noreply.github.com>
Date: Tue, 21 Feb 2023 21:58:37 +0100
Add missing collections/details endpoint, based on the existing one
Diffstat:
1 file changed, 27 insertions(+), 0 deletions(-)
diff --git a/src/api/core/organizations.rs b/src/api/core/organizations.rs
@@ -26,6 +26,7 @@ pub fn routes() -> Vec<Route> {
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/<org_id>/collections/details")]
+async fn get_org_collections_details(org_id: String, _headers: ManagerHeadersLoose, mut conn: DbConn) -> Json<Value> {
+ let mut data = Vec::new();
+
+ for col in Collection::find_by_organization(&org_id, &mut conn).await {
+ let groups: Vec<Value> = 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::<Value>()
}