buckets_core/database/
mod.rs1mod sql;
2mod uploads;
3
4use crate::config::Config;
5use crate::model::result::*;
6use oiseau::{execute, postgres::DataManager as OiseauManager, postgres::Result as PgResult};
7
8#[derive(Clone)]
9pub struct DataManager(pub OiseauManager<Config>);
10
11impl DataManager {
12 pub async fn new(config: Config) -> PgResult<Self> {
14 Ok(Self(OiseauManager::new(config).await?))
15 }
16
17 pub async fn init(&self) -> Result<()> {
19 let conn = match self.0.connect().await {
20 Ok(c) => c,
21 Err(e) => return Err(Error::DatabaseConnection(e.to_string())),
22 };
23
24 execute!(&conn, sql::CREATE_TABLE_UPLOADS).unwrap();
25
26 Ok(())
27 }
28}