1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2025-06-20 08:25:16 +00:00

Add connection to the database

This commit is contained in:
2020-05-21 09:21:58 +02:00
parent 5766ebcbde
commit bc91caeba4
6 changed files with 1041 additions and 3 deletions

28
src/helpers/database.rs Normal file
View File

@ -0,0 +1,28 @@
use std::error::Error;
use std::sync::{Mutex, Arc};
use crate::data::config::DatabaseConfig;
use mysql::Pool;
/// Database access helper
///
/// @author Pierre Hubert
// Pool shared across threads
static mut POOL: Option<Arc<Mutex<mysql::Pool>>> = None;
/// Connect to the database
pub fn connect(conf: &DatabaseConfig) -> Result<(), Box<dyn Error>> {
let url = format!(
"mysql://{}:{}@{}:3306/{}",
conf.username, conf.password, conf.host, conf.name
);
let pool = Pool::new(url)?;
let pool = Some(Arc::new(Mutex::new(pool)));
unsafe {
POOL = pool;
}
Ok(())
}

1
src/helpers/mod.rs Normal file
View File

@ -0,0 +1 @@
pub mod database;