vw_small

Hardened fork of Vaultwarden (https://github.com/dani-garcia/vaultwarden) with fewer features.
git clone https://git.philomathiclife.com/repos/vw_small
Log | Files | Refs | README

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:
Msrc/api/core/organizations.rs | 27+++++++++++++++++++++++++++
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>() }