mirror of
https://github.com/dani-garcia/vaultwarden.git
synced 2024-12-23 03:19:03 +00:00
Merge pull request #218 from janost/refactor-folder-save
Folder::save() should return QueryResult instead of bool
This commit is contained in:
commit
02fd68d63b
@ -229,11 +229,15 @@ fn post_ciphers_import(data: JsonUpcase<ImportData>, headers: Headers, conn: DbC
|
||||
let data: ImportData = data.into_inner().data;
|
||||
|
||||
// Read and create the folders
|
||||
let folders: Vec<_> = data.Folders.into_iter().map(|folder| {
|
||||
let mut folder = Folder::new(headers.user.uuid.clone(), folder.Name);
|
||||
folder.save(&conn);
|
||||
folder
|
||||
}).collect();
|
||||
let mut folders: Vec<_> = Vec::new();
|
||||
for folder in data.Folders.into_iter() {
|
||||
let mut new_folder = Folder::new(headers.user.uuid.clone(), folder.Name);
|
||||
if new_folder.save(&conn).is_err() {
|
||||
err!("Failed importing folders")
|
||||
} else {
|
||||
folders.push(new_folder);
|
||||
}
|
||||
}
|
||||
|
||||
// Read the relations between folders and ciphers
|
||||
use std::collections::HashMap;
|
||||
|
@ -47,7 +47,9 @@ fn post_folders(data: JsonUpcase<FolderData>, headers: Headers, conn: DbConn, ws
|
||||
|
||||
let mut folder = Folder::new(headers.user.uuid.clone(), data.Name);
|
||||
|
||||
folder.save(&conn);
|
||||
if folder.save(&conn).is_err() {
|
||||
err!("Failed to save folder")
|
||||
}
|
||||
ws.send_folder_update(UpdateType::SyncFolderCreate, &folder);
|
||||
|
||||
Ok(Json(folder.to_json()))
|
||||
@ -73,7 +75,9 @@ fn put_folder(uuid: String, data: JsonUpcase<FolderData>, headers: Headers, conn
|
||||
|
||||
folder.name = data.Name;
|
||||
|
||||
folder.save(&conn);
|
||||
if folder.save(&conn).is_err() {
|
||||
err!("Failed to save folder")
|
||||
}
|
||||
ws.send_folder_update(UpdateType::SyncFolderUpdate, &folder);
|
||||
|
||||
Ok(Json(folder.to_json()))
|
||||
|
@ -70,16 +70,12 @@ use db::schema::{folders, folders_ciphers};
|
||||
|
||||
/// Database methods
|
||||
impl Folder {
|
||||
pub fn save(&mut self, conn: &DbConn) -> bool {
|
||||
pub fn save(&mut self, conn: &DbConn) -> QueryResult<()> {
|
||||
User::update_uuid_revision(&self.user_uuid, conn);
|
||||
self.updated_at = Utc::now().naive_utc();
|
||||
|
||||
match diesel::replace_into(folders::table)
|
||||
.values(&*self)
|
||||
.execute(&**conn) {
|
||||
Ok(1) => true, // One row inserted
|
||||
_ => false,
|
||||
}
|
||||
diesel::replace_into(folders::table)
|
||||
.values(&*self).execute(&**conn).and(Ok(()))
|
||||
}
|
||||
|
||||
pub fn delete(&self, conn: &DbConn) -> QueryResult<()> {
|
||||
|
Loading…
Reference in New Issue
Block a user