36 lines
1019 B
Rust
36 lines
1019 B
Rust
use sqlx::AnyPool;
|
|
use std::env;
|
|
|
|
use crate::USERS_FILESTORE;
|
|
|
|
#[derive(Clone)]
|
|
pub enum UserStore {
|
|
File(String),
|
|
Sql(AnyPool),
|
|
// SqlLite(SqlitePool),
|
|
// None
|
|
}
|
|
impl UserStore {
|
|
#[allow(dead_code)]
|
|
pub async fn from_str(store: &str) -> Self {
|
|
match store {
|
|
"fs"|"file"|"FS"|"FILE" => {
|
|
println!("From File: {}",USERS_FILESTORE);
|
|
UserStore::File(String::from(USERS_FILESTORE))
|
|
}
|
|
"db"|"DB"|_ => {
|
|
let db_url = env::var("DATABASE_URL").unwrap_or_else(|e|{
|
|
eprintln!("Error env DATABASE_URL: {}",e);
|
|
std::process::exit(2)
|
|
});
|
|
let pool = AnyPool::connect(&db_url).await.unwrap_or_else(|e|{
|
|
eprintln!("Error pool DATABASE_URL: {}",e);
|
|
std::process::exit(2)
|
|
});
|
|
println!("From DB: {}",&db_url);
|
|
UserStore::Sql(pool)
|
|
},
|
|
}
|
|
}
|
|
}
|