1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
pub mod api_token;
pub mod cipher;
pub mod currency;
pub mod encryption_key;
pub mod invoice;
pub mod key_encryption_key;
pub mod merchant;
pub mod network;
pub mod program;
pub mod role;
pub mod sale;
pub mod ticker;
pub mod wallet;

use sea_orm::{ConnectOptions, Database, DatabaseConnection};

use moonramp_core::{anyhow, sea_orm};

//use sqlx::sqlite::{SqliteConnectOptions, SqliteJournalMode, SqlitePoolOptions};

//pub async fn database_connection_pool(
//    db_path: &str,
//    db_secret: &str,
//) -> Result<DatabaseConnection, Box<dyn Error>> {
//    let opt = SqliteConnectOptions::from_str(&format!("sqlite:{}", db_path))?
//        .pragma("key", db_secret.to_string())
//        .create_if_missing(false)
//        .journal_mode(SqliteJournalMode::Wal);
//
//    let pool = SqlitePoolOptions::new().connect_with(opt).await?;
//    Ok(SqlxSqliteConnector::from_sqlx_sqlite_pool(pool))
//}

pub async fn database_connection_pool(url: &str) -> anyhow::Result<DatabaseConnection> {
    let mut opts = ConnectOptions::from(url);
    opts.max_connections(10);
    Ok(Database::connect(opts).await?)
}