Browse Source
Add missing collections/details endpoint, based on the existing one
pull/3277/head
Daniel García
2 years ago
No known key found for this signature in database
GPG Key ID: FC8A7D14C3CD543A
1 changed files with
27 additions and
0 deletions
-
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>() |
|
|
|
} |
|
|
|