cooplan_mongodb/config/
mongodb_config.rs1use mongodb::options::ClientOptions;
2
3use crate::error::{Error, ErrorKind};
4
5const MONGODB_URI: &str = "MONGODB_URI";
6
7pub struct MongoDbConfig {
8 client_options: ClientOptions,
9}
10
11impl MongoDbConfig {
12 pub fn client_options(self) -> ClientOptions {
13 self.client_options
14 }
15}
16
17pub async fn try_generate_config(uri: String) -> Result<MongoDbConfig, Error> {
18 let client_options = match ClientOptions::parse(uri).await {
19 Ok(client_options) => client_options,
20 Err(error) => {
21 return Err(Error::new(
22 ErrorKind::AutoConfigFailure,
23 format!("failed to parse mongodb_uri: {:?}", error),
24 ));
25 }
26 };
27
28 Ok(MongoDbConfig { client_options })
29}