commit c3be1b4298206c084e397b4c0a3e2e840baf6d8e
parent 514a372bc85fd495d331f240e35377a8ebdfb3c4
Author: Miroslav Prasil <miroslav@prasil.info>
Date: Tue, 1 May 2018 16:54:22 +0100
Fix FolderCipher creation, handle some errors
Diffstat:
3 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/src/api/core/ciphers.rs b/src/api/core/ciphers.rs
@@ -174,7 +174,9 @@ fn update_cipher_from_data(cipher: &mut Cipher, data: CipherData, headers: &Head
// Copy the type data and change the names to the correct case
copy_values(&type_data, &mut values);
- cipher.move_to_folder(data.folderId, &headers.user.uuid, &conn);
+ if cipher.move_to_folder(data.folderId, &headers.user.uuid, &conn).is_err() {
+ err!("Error saving the folder information")
+ }
cipher.name = data.name;
cipher.notes = data.notes;
cipher.fields = uppercase_fields.map(|f| f.to_string());
@@ -429,7 +431,9 @@ fn move_cipher_selected(data: Json<Value>, headers: Headers, conn: DbConn) -> Em
}
// Move cipher
- cipher.move_to_folder(folder_id.clone(), &headers.user.uuid, &conn);
+ if cipher.move_to_folder(folder_id.clone(), &headers.user.uuid, &conn).is_err() {
+ err!("Error saving the folder information")
+ }
cipher.save(&conn);
}
diff --git a/src/db/models/cipher.rs b/src/db/models/cipher.rs
@@ -163,10 +163,10 @@ impl Cipher {
current_folder.delete(&conn).or(Err("Failed removing old folder mapping"))
},
None => Ok(()) // Weird, but nothing to do
- };
-
- FolderCipher::new(&new_folder, &self.uuid)
- .save(&conn).or(Err("Couldn't save folder setting"))
+ }.and_then(
+ |()| FolderCipher::new(&new_folder, &self.uuid)
+ .save(&conn).or(Err("Couldn't save folder setting"))
+ )
}
},
None => {
diff --git a/src/db/models/folder.rs b/src/db/models/folder.rs
@@ -55,10 +55,10 @@ impl Folder {
}
impl FolderCipher {
- pub fn new(cipher_uuid: &str, folder_uuid: &str) -> Self {
+ pub fn new(folder_uuid: &str, cipher_uuid: &str) -> Self {
Self {
- cipher_uuid: cipher_uuid.to_string(),
folder_uuid: folder_uuid.to_string(),
+ cipher_uuid: cipher_uuid.to_string(),
}
}
}