bot works as echo (adding templates s functional)
tpl_list dont
This commit is contained in:
30
app/services/users.py
Normal file
30
app/services/users.py
Normal file
@@ -0,0 +1,30 @@
|
||||
"""Сервис для работы с пользователями."""
|
||||
from typing import Optional
|
||||
from sqlalchemy import select
|
||||
from app.db.session import async_session_maker
|
||||
from app.models.user import User
|
||||
|
||||
async def get_or_create_user(tg_user_id: int, username: Optional[str] = None) -> User:
|
||||
"""Получить или создать пользователя.
|
||||
|
||||
Args:
|
||||
tg_user_id: ID пользователя в Telegram
|
||||
username: Имя пользователя в Telegram
|
||||
|
||||
Returns:
|
||||
User: Объект пользователя
|
||||
"""
|
||||
async with async_session_maker() as session:
|
||||
# Пробуем найти пользователя
|
||||
query = select(User).where(User.tg_user_id == tg_user_id)
|
||||
result = await session.execute(query)
|
||||
user = result.scalar_one_or_none()
|
||||
|
||||
if not user:
|
||||
# Создаем нового пользователя
|
||||
user = User(tg_user_id=tg_user_id, username=username)
|
||||
session.add(user)
|
||||
await session.commit()
|
||||
await session.refresh(user)
|
||||
|
||||
return user
|
||||
Reference in New Issue
Block a user