cooplan_mongodb/
connection_manager.rs

1use mongodb::Client;
2use mongodb::error::Error;
3
4use crate::config::mongodb_config::MongoDbConfig;
5
6pub struct MongoDbConnectionManager {
7    client: Client,
8}
9
10//TODO: Implement connection failure handling
11impl MongoDbConnectionManager {
12    pub fn try_new(mongodb_config: MongoDbConfig) -> Result<MongoDbConnectionManager, Error> {
13        let client = match Client::with_options(mongodb_config.client_options()) {
14            Ok(client) => client,
15            Err(error) => {
16                return Err(error);
17            }
18        };
19
20        Ok(MongoDbConnectionManager { client })
21    }
22
23    pub fn client(&self) -> &Client {
24        &self.client
25    }
26}