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