refactoring
This commit is contained in:
39
model/view_setting.py
Normal file
39
model/view_setting.py
Normal file
@@ -0,0 +1,39 @@
|
||||
from sqlmodel import SQLModel, Field, BIGINT
|
||||
from sqlalchemy.ext.asyncio.session import AsyncSession
|
||||
|
||||
from . import session_dep
|
||||
|
||||
|
||||
class ViewSetting(SQLModel, table = True):
|
||||
|
||||
__tablename__ = "view_setting"
|
||||
user_id: int = Field(sa_type = BIGINT, primary_key = True, foreign_key="user.id", ondelete="CASCADE")
|
||||
entity_name: str = Field(primary_key = True)
|
||||
filter: str | None = None
|
||||
|
||||
|
||||
@classmethod
|
||||
@session_dep
|
||||
async def get_filter(cls, *,
|
||||
session: AsyncSession | None = None,
|
||||
user_id: int,
|
||||
entity_name: str):
|
||||
|
||||
setting = await session.get(cls, (user_id, entity_name))
|
||||
return setting.filter if setting else None
|
||||
|
||||
@classmethod
|
||||
@session_dep
|
||||
async def set_filter(cls, *,
|
||||
session: AsyncSession | None = None,
|
||||
user_id: int,
|
||||
entity_name: str,
|
||||
filter: str):
|
||||
|
||||
setting = await session.get(cls, (user_id, entity_name))
|
||||
if setting:
|
||||
setting.filter = filter
|
||||
else:
|
||||
setting = cls(user_id = user_id, entity_name = entity_name, filter = filter)
|
||||
session.add(setting)
|
||||
await session.commit()
|
||||
Reference in New Issue
Block a user