mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2024-11-22 13:29:21 +00:00
Add connection to the database
This commit is contained in:
parent
5766ebcbde
commit
bc91caeba4
1003
Cargo.lock
generated
1003
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -7,4 +7,7 @@ edition = "2018"
|
|||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
yaml-rust = "0.4.3"
|
yaml-rust = "0.4.3"
|
||||||
|
mysql = "18.2.0"
|
||||||
|
|
||||||
|
|
||||||
|
28
src/helpers/database.rs
Normal file
28
src/helpers/database.rs
Normal 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
1
src/helpers/mod.rs
Normal file
@ -0,0 +1 @@
|
|||||||
|
pub mod database;
|
@ -1 +1,2 @@
|
|||||||
pub mod data;
|
pub mod data;
|
||||||
|
pub mod helpers;
|
@ -1,11 +1,13 @@
|
|||||||
use comunic_server::data::config::{conf, Config};
|
use comunic_server::data::config::{conf, Config};
|
||||||
|
use comunic_server::helpers::database;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
|
||||||
// Load configuration
|
// Load configuration
|
||||||
Config::load("config.yaml").expect("Could not load configuration!");
|
Config::load("config.yaml").expect("Could not load configuration!");
|
||||||
|
|
||||||
println!("{:#?}", conf());
|
// Connect to the database
|
||||||
|
database::connect(&conf().database).expect("Could not connect to database!");
|
||||||
|
|
||||||
println!("Hello, world!");
|
println!("Hello, world!");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user