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:
parent
06e14fea55
commit
dc7951efaf
@ -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>()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user