use crate::rubase::BaseEntitySingle;
use crate::rubase::get_self::GetSelf;
use crate::rubase::rudto::Gorm;
use crate::rubase::rudto::cfgdto::DataSource;
use crate::rucfg;
use postgres::Client;
use serde::{Deserialize, Serialize};
use tokio_postgres::NoTls;
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct Database {
pub gorm: Gorm,
pub datasource: DataSource,
}
impl BaseEntitySingle for Database {}
impl GetSelf for Database {}
impl Database {
pub fn new() -> Self {
let config = rucfg::find_bean_ru_config().unwrap().read();
Database {
gorm: config.gorm,
datasource: config.datasource,
}
}
pub fn conn(&self) -> Result<Client, postgres::Error> {
let client = Client::connect(
self.datasource.buildUrl().to_string().as_str(),
NoTls, )?;
Ok(client)
}
}
#[cfg(test)]
mod tests{
use super::*;
#[test]
fn test_001_conn() {
}
}