mirror of
https://github.com/Xtao-Labs/misskey2telegram.git
synced 2024-11-29 16:01:42 +00:00
37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
|
from typing import cast, Optional
|
||
|
|
||
|
from sqlalchemy import select
|
||
|
from sqlmodel.ext.asyncio.session import AsyncSession
|
||
|
|
||
|
from init import sqlite
|
||
|
from models.models.user_config import UserConfig
|
||
|
|
||
|
|
||
|
class UserConfigAction:
|
||
|
@staticmethod
|
||
|
async def add_user_config(user_config: UserConfig):
|
||
|
async with sqlite.session() as session:
|
||
|
session = cast(AsyncSession, session)
|
||
|
session.add(user_config)
|
||
|
await session.commit()
|
||
|
|
||
|
@staticmethod
|
||
|
async def get_user_config_by_id(user_id: int) -> Optional[UserConfig]:
|
||
|
async with sqlite.session() as session:
|
||
|
session = cast(AsyncSession, session)
|
||
|
statement = select(UserConfig).where(UserConfig.user_id == user_id)
|
||
|
results = await session.exec(statement)
|
||
|
return user[0] if (user := results.first()) else None
|
||
|
|
||
|
@staticmethod
|
||
|
async def update_user_config(user_config: UserConfig):
|
||
|
async with sqlite.session() as session:
|
||
|
session = cast(AsyncSession, session)
|
||
|
session.add(user_config)
|
||
|
await session.commit()
|
||
|
await session.refresh(user_config)
|
||
|
|
||
|
@staticmethod
|
||
|
def create_user_config(user_id: int) -> UserConfig:
|
||
|
return UserConfig(user_id=user_id)
|