pub mod grid_fs;
pub mod mongo_client;
pub mod with_mongo;
pub use mongo_client::*;
pub use with_mongo::*;
#[derive(serde::Deserialize, Clone)]
pub struct MongoSettings {
pub enable: Option<bool>,
server: Option<String>,
}
impl Default for MongoSettings {
fn default() -> Self {
Self {
enable: Some(true),
server: Some("mongodb://127.0.0.1:27017/?retryWrites=true&w=majority".to_string()),
}
}
}
impl MongoSettings {
pub fn enabled(&self) -> bool {
self.enable.unwrap_or_default()
}
pub fn server(&self) -> String {
self.server.clone().unwrap()
}
pub fn get(settings: &Option<MongoSettings>) -> Self {
let _default = Self::default();
if settings.is_some() {
let mut s = settings.clone().unwrap();
if s.server.is_none() {
s.enable = _default.enable;
s.server = _default.server;
}
s
} else {
_default
}
}
}
impl std::fmt::Display for MongoSettings {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
if let Some(u) = &self.server {
f.write_str(u)?;
}
Ok(())
}
}