Skip to main content

tetratto_core2/database/drivers/
mod.rs

1pub mod common;
2
3use std::collections::HashMap;
4use oiseau::postgres::{DataManager as OiseauManager, Result};
5use crate::config::Config;
6use buckets_core::{DataManager as BucketsManager, Config as BucketsConfig};
7
8#[derive(Clone)]
9pub struct DataManager(pub OiseauManager<Config>, pub BucketsManager);
10
11impl DataManager {
12    /// Create a new [`DataManager`].
13    pub async fn new(config: Config) -> Result<Self> {
14        let buckets_manager = BucketsManager::new(BucketsConfig {
15            directory: format!("{}/{}", config.dirs.media, "uploads"),
16            bucket_defaults: HashMap::new(),
17            database: config.database.clone(),
18            banned_hosts: config.banned_hosts.clone(),
19        })
20        .await
21        .expect("failed to create buckets manager");
22
23        Ok(Self(OiseauManager::new(config).await?, buckets_manager))
24    }
25}