Constant DB
Source pub const DB: &str = r#"use dotenvy::dotenv;
use rbatis::RBatis;
use rbdc_pg::driver::PgDriver;
use rocket::fairing::AdHoc;
use std::sync::Arc;
use crate::repositories::UserRepository;
pub fn init() -> AdHoc {
AdHoc::on_ignite(
"Establish connection with PostgreSQL database",
|rocket| async {
match connect().await {
Ok(user_repository) => rocket.manage(user_repository),
Err(error) => {
panic!("Cannot connect to database -> {:?}", error)
}
}
},
)
}
async fn connect() -> Result<Arc<UserRepository>, rbatis::Error> {
dotenv().ok();
let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set...");
let rb = RBatis::new();
rb.link(PgDriver {}, &database_url).await?;
Ok(Arc::new(UserRepository::new(rb)))
}
"#;