|
@ -6,7 +6,7 @@ use super::{ |
|
|
Attachment, CollectionCipher, Favorite, FolderCipher, Group, User, UserOrgStatus, UserOrgType, UserOrganization, |
|
|
Attachment, CollectionCipher, Favorite, FolderCipher, Group, User, UserOrgStatus, UserOrgType, UserOrganization, |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
use crate::api::core::CipherSyncData; |
|
|
use crate::api::core::{CipherData, CipherSyncData}; |
|
|
|
|
|
|
|
|
use std::borrow::Cow; |
|
|
use std::borrow::Cow; |
|
|
|
|
|
|
|
@ -73,6 +73,33 @@ impl Cipher { |
|
|
reprompt: None, |
|
|
reprompt: None, |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
pub fn validate_notes(cipher_data: &[CipherData]) -> EmptyResult { |
|
|
|
|
|
let mut validation_errors = serde_json::Map::new(); |
|
|
|
|
|
for (index, cipher) in cipher_data.iter().enumerate() { |
|
|
|
|
|
if let Some(note) = &cipher.Notes { |
|
|
|
|
|
if note.len() > 10_000 { |
|
|
|
|
|
validation_errors.insert( |
|
|
|
|
|
format!("Ciphers[{index}].Notes"), |
|
|
|
|
|
serde_json::to_value([ |
|
|
|
|
|
"The field Notes exceeds the maximum encrypted value length of 10000 characters.", |
|
|
|
|
|
]) |
|
|
|
|
|
.unwrap(), |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if !validation_errors.is_empty() { |
|
|
|
|
|
let err_json = json!({ |
|
|
|
|
|
"message": "The model state is invalid.", |
|
|
|
|
|
"validationErrors" : validation_errors, |
|
|
|
|
|
"object": "error" |
|
|
|
|
|
}); |
|
|
|
|
|
err_json!(err_json, "Import validation errors") |
|
|
|
|
|
} else { |
|
|
|
|
|
Ok(()) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
use crate::db::DbConn; |
|
|
use crate::db::DbConn; |
|
|