19 lines
729 B
Python
19 lines
729 B
Python
from typing import Optional, List
|
|
from sqlalchemy.orm import Session
|
|
from sqlalchemy import select
|
|
from app.models.SettingModel import Setting
|
|
from app.repositories.base_repository import BaseRepository
|
|
|
|
class SettingRepository(BaseRepository[Setting]):
|
|
def __init__(self):
|
|
super().__init__(Setting)
|
|
|
|
def get_by_key(self, db: Session, key: str) -> Optional[Setting]:
|
|
stmt = select(Setting).where(Setting.setting_key == key)
|
|
return db.execute(stmt).scalar_one_or_none()
|
|
|
|
def get_public_settings(self, db: Session) -> List[Setting]:
|
|
stmt = select(Setting).where(Setting.is_public.is_(True))
|
|
return list(db.execute(stmt).scalars().all())
|
|
|
|
setting_repository = SettingRepository()
|