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 69e624f82bd26b9b63784cdb89fb1ac5ee82169e
parent 68a423020082e98d8074d79075810109c5389391
Author: Daniel GarcĂ­a <dani1861994@hotmail.com>
Date:   Thu, 26 Apr 2018 23:21:29 +0200

Improved collection loading

Diffstat:
Msrc/db/models/collection.rs | 23++++++++---------------
1 file changed, 8 insertions(+), 15 deletions(-)

diff --git a/src/db/models/collection.rs b/src/db/models/collection.rs @@ -66,26 +66,19 @@ impl Collection { .first::<Self>(&**conn).ok() } - pub fn find_by_user_uuid(uuid: &str, conn: &DbConn) -> Vec<Self> { - match users_collections::table - .filter(users_collections::user_uuid.eq(uuid)) - .select(users_collections::columns::collection_uuid) - .load(&**conn) { - Ok(uuids) => uuids.iter().map(|uuid: &String| { - Collection::find_by_uuid(uuid, &conn).unwrap() - }).collect(), - Err(list) => vec![] - } + pub fn find_by_user_uuid(user_uuid: &str, conn: &DbConn) -> Vec<Self> { + users_collections::table.inner_join(collections::table) + .filter(users_collections::user_uuid.eq(user_uuid)) + .select(collections::all_columns) + .load::<Self>(&**conn).expect("Error loading user collections") } pub fn find_by_uuid_and_user(uuid: &str, user_uuid: &str, conn: &DbConn) -> Option<Self> { - match users_collections::table + users_collections::table.inner_join(collections::table) .filter(users_collections::collection_uuid.eq(uuid)) .filter(users_collections::user_uuid.eq(user_uuid)) - .first::<CollectionUsers>(&**conn).ok() { - None => None, - Some(collection_user) => Collection::find_by_uuid(&collection_user.collection_uuid, &conn) - } + .select(collections::all_columns) + .first::<Self>(&**conn).ok() } }