feat(api,userbot,frontend): rename session device from the web ui
This commit is contained in:
@@ -7,7 +7,7 @@ from utils.read.models import AccountView
|
||||
|
||||
ACCOUNTS_CHANGED_CHANNEL = "accounts_changed"
|
||||
|
||||
_ACCOUNT_COLS = "account_id, label, phone, tg_user_id, is_active"
|
||||
_ACCOUNT_COLS = "account_id, label, phone, tg_user_id, is_active, device_model"
|
||||
|
||||
_UPSERT_ACCOUNT = """
|
||||
INSERT INTO accounts
|
||||
@@ -23,6 +23,12 @@ ON CONFLICT (tg_user_id) DO UPDATE SET
|
||||
RETURNING account_id
|
||||
"""
|
||||
|
||||
_SET_DEVICE_MODEL = f"""
|
||||
UPDATE accounts SET device_model = $2, updated_at = now()
|
||||
WHERE account_id = $1
|
||||
RETURNING {_ACCOUNT_COLS}
|
||||
""" # noqa: S608
|
||||
|
||||
|
||||
async def self_user_id(pool: asyncpg.Pool, account_id: int) -> int | None:
|
||||
return await pool.fetchval(
|
||||
@@ -61,6 +67,20 @@ async def sync_account(pool: asyncpg.Pool, me: User, session_name: str) -> int:
|
||||
)
|
||||
|
||||
|
||||
async def set_device_model(
|
||||
pool: asyncpg.Pool, account_id: int, device_model: str
|
||||
) -> AccountView | None:
|
||||
row = await pool.fetchrow(_SET_DEVICE_MODEL, account_id, device_model)
|
||||
return AccountView(**dict(row)) if row else None
|
||||
|
||||
|
||||
async def session_device_models(pool: asyncpg.Pool) -> dict[str, str]:
|
||||
rows = await pool.fetch(
|
||||
"SELECT session_name, device_model FROM accounts WHERE device_model IS NOT NULL"
|
||||
)
|
||||
return {row["session_name"]: row["device_model"] for row in rows}
|
||||
|
||||
|
||||
async def deactivate_account(pool: asyncpg.Pool, account_id: int) -> str | None:
|
||||
return await pool.fetchval(
|
||||
"UPDATE accounts SET is_active = FALSE, updated_at = now() "
|
||||
|
||||
@@ -22,6 +22,7 @@ class AccountView(BaseModel):
|
||||
phone: str | None
|
||||
tg_user_id: int | None
|
||||
is_active: bool
|
||||
device_model: str | None
|
||||
|
||||
|
||||
class ChatListItem(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user