DB

Constant DB 

Source
pub const DB: &str = r#"use dotenvy::dotenv;
use mongodb::{Client, options::ClientOptions};
use rocket::fairing::AdHoc;
use std::sync::Arc;

use crate::repositories::UserRepository;

pub fn init() -> AdHoc {
    AdHoc::on_ignite(
        "Establish connection with Database cluster",
        |rocket| async {
            match connect().await {
                Ok(user_repository) => rocket.manage(user_repository),
                Err(error) => {
                    panic!("Cannot connect to instance -> {:?}", error)
                }
            }
        },
    )
}

async fn connect() -> mongodb::error::Result<Arc<UserRepository>> {
    dotenv().ok();
    let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set...");
    let database_name = std::env::var("DATABASE").expect("DATABASE must be set...");
    let client_options = ClientOptions::parse(database_url).await?;
    let client = Client::with_options(client_options)?;
    let _database = client.database(&database_name);

    Ok(Arc::new(UserRepository::new(
        &client,
        &database_name,
        "users",
    )))
}
"#;