1
0
mirror of https://github.com/dani-garcia/vaultwarden.git synced 2024-11-08 20:12:34 +01:00

Add missing collections/details endpoint, based on the existing one

This commit is contained in:
Daniel García 2023-02-21 21:58:37 +01:00
parent 06e14fea55
commit dc7951efaf
No known key found for this signature in database
GPG Key ID: FC8A7D14C3CD543A

View File

@ -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>()
}