From 5292d38c739db270fc9b3f41a8d84b9699ffbb30 Mon Sep 17 00:00:00 2001 From: janost Date: Sat, 6 Oct 2018 23:56:05 +0200 Subject: [PATCH] CollectionCipher::save() and delete() should return QueryResult instead of bool --- src/api/core/ciphers.rs | 15 ++++++++++++--- src/api/core/organizations.rs | 5 ++++- src/db/models/collection.rs | 18 ++++++------------ 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/api/core/ciphers.rs b/src/api/core/ciphers.rs index dc07287..5d1d73c 100644 --- a/src/api/core/ciphers.rs +++ b/src/api/core/ciphers.rs @@ -333,9 +333,15 @@ fn post_collections_admin(uuid: String, data: JsonUpcase, Some(collection) => { if collection.is_writable_by_user(&headers.user.uuid, &conn) { if posted_collections.contains(&collection.uuid) { // Add to collection - CollectionCipher::save(&cipher.uuid, &collection.uuid, &conn); + match CollectionCipher::save(&cipher.uuid, &collection.uuid, &conn) { + Ok(()) => (), + Err(_) => err!("Failed to add cipher to collection") + }; } else { // Remove from collection - CollectionCipher::delete(&cipher.uuid, &collection.uuid, &conn); + match CollectionCipher::delete(&cipher.uuid, &collection.uuid, &conn) { + Ok(()) => (), + Err(_) => err!("Failed to remove cipher from collection") + }; } } else { err!("No rights to modify the collection") @@ -438,7 +444,10 @@ fn share_cipher_by_uuid(uuid: &str, data: ShareCipherData, headers: &Headers, co None => err!("Invalid collection ID provided"), Some(collection) => { if collection.is_writable_by_user(&headers.user.uuid, &conn) { - CollectionCipher::save(&cipher.uuid.clone(), &collection.uuid, &conn); + match CollectionCipher::save(&cipher.uuid.clone(), &collection.uuid, &conn) { + Ok(()) => (), + Err(_) => err!("Failed to add cipher to collection") + }; shared_to_collection = true; } else { err!("No rights to modify the collection") diff --git a/src/api/core/organizations.rs b/src/api/core/organizations.rs index 637b935..2deab3f 100644 --- a/src/api/core/organizations.rs +++ b/src/api/core/organizations.rs @@ -663,7 +663,10 @@ fn post_org_import(query: OrgIdData, data: JsonUpcase, headers: Head Err(_) => err!("Failed to assign to collection") }; - CollectionCipher::save(cipher_id, coll_id, &conn); + match CollectionCipher::save(cipher_id, coll_id, &conn) { + Ok(()) => (), + Err(_) => err!("Failed to add cipher to collection") + }; } let mut user = headers.user; diff --git a/src/db/models/collection.rs b/src/db/models/collection.rs index ddc4d2e..bcbacbe 100644 --- a/src/db/models/collection.rs +++ b/src/db/models/collection.rs @@ -259,25 +259,19 @@ pub struct CollectionCipher { /// Database methods impl CollectionCipher { - pub fn save(cipher_uuid: &str, collection_uuid: &str, conn: &DbConn) -> bool { - match diesel::replace_into(ciphers_collections::table) + pub fn save(cipher_uuid: &str, collection_uuid: &str, conn: &DbConn) -> QueryResult<()> { + diesel::replace_into(ciphers_collections::table) .values(( ciphers_collections::cipher_uuid.eq(cipher_uuid), ciphers_collections::collection_uuid.eq(collection_uuid), - )).execute(&**conn) { - Ok(1) => true, // One row inserted - _ => false, - } + )).execute(&**conn).and(Ok(())) } - pub fn delete(cipher_uuid: &str, collection_uuid: &str, conn: &DbConn) -> bool { - match diesel::delete(ciphers_collections::table + pub fn delete(cipher_uuid: &str, collection_uuid: &str, conn: &DbConn) -> QueryResult<()> { + diesel::delete(ciphers_collections::table .filter(ciphers_collections::cipher_uuid.eq(cipher_uuid)) .filter(ciphers_collections::collection_uuid.eq(collection_uuid))) - .execute(&**conn) { - Ok(1) => true, // One row deleted - _ => false, - } + .execute(&**conn).and(Ok(())) } pub fn delete_all_by_cipher(cipher_uuid: &str, conn: &DbConn) -> QueryResult<()> {