pub mod changes;
pub mod copy;
pub mod import;
pub mod parse;
pub mod types;
pub use changes::{email_changes, email_query_changes};
pub use copy::email_copy;
pub use import::email_import;
pub use parse::email_parse;
pub use types::{
AddedItem, EmailChangesRequest, EmailChangesResponse, EmailCopyObject, EmailCopyRequest,
EmailCopyResponse, EmailImportObject, EmailImportRequest, EmailImportResponse,
EmailParseRequest, EmailParseResponse, EmailQueryChangesRequest, EmailQueryChangesResponse,
};
use rusmes_storage::MessageStore;
pub(super) async fn get_current_modseq(_message_store: &dyn MessageStore) -> anyhow::Result<u64> {
Ok(chrono::Utc::now().timestamp() as u64)
}
#[cfg(test)]
pub(super) mod test_helpers {
use crate::blob::BlobStorage;
use rusmes_storage::backends::filesystem::FilesystemBackend;
use rusmes_storage::{MessageStore, StorageBackend};
use std::path::PathBuf;
use std::sync::Arc;
pub fn test_principal() -> crate::types::Principal {
crate::types::admin_principal_for_tests()
}
pub fn empty_blobs() -> BlobStorage {
BlobStorage::new()
}
pub fn create_test_store() -> Arc<dyn MessageStore> {
let backend = FilesystemBackend::new(PathBuf::from("/tmp/rusmes-test-storage"));
backend.message_store()
}
pub fn create_test_backend() -> Arc<FilesystemBackend> {
Arc::new(FilesystemBackend::new(
std::env::temp_dir().join("rusmes-email-advanced-test"),
))
}
}