use super::base::{BaseService, SimpleService};
use crate::error::CoolError;
use sea_orm::{ConnectionTrait, DatabaseBackend, DatabaseConnection};
use std::sync::Arc;
pub struct PostgresService {
inner: SimpleService,
}
impl PostgresService {
pub fn new(db: Arc<DatabaseConnection>, table: impl Into<String>) -> Result<Self, CoolError> {
if db.get_database_backend() != DatabaseBackend::Postgres {
return Err(CoolError::comm("当前连接不是 Postgres 后端"));
}
Ok(Self {
inner: SimpleService::new(db, table),
})
}
}
#[async_trait::async_trait]
impl BaseService for PostgresService {
fn db(&self) -> &DatabaseConnection {
self.inner.db()
}
fn table_name(&self) -> &str {
self.inner.table_name()
}
}