cooplan_mongodb/config/
mongodb_config.rs

1use 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}