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