cool_core/service/
postgres.rs1use super::base::{BaseService, SimpleService};
6use crate::error::CoolError;
7use sea_orm::{ConnectionTrait, DatabaseBackend, DatabaseConnection};
8use std::sync::Arc;
9
10pub struct PostgresService {
12 inner: SimpleService,
13}
14
15impl PostgresService {
16 pub fn new(db: Arc<DatabaseConnection>, table: impl Into<String>) -> Result<Self, CoolError> {
18 if db.get_database_backend() != DatabaseBackend::Postgres {
19 return Err(CoolError::comm("当前连接不是 Postgres 后端"));
20 }
21 Ok(Self {
22 inner: SimpleService::new(db, table),
23 })
24 }
25}
26
27#[async_trait::async_trait]
28impl BaseService for PostgresService {
29 fn db(&self) -> &DatabaseConnection {
30 self.inner.db()
31 }
32
33 fn table_name(&self) -> &str {
34 self.inner.table_name()
35 }
36}