Пиздец очередной

This commit is contained in:
Disledg
2024-12-21 18:25:52 +03:00
parent f5d2051360
commit bfe898f10a
25 changed files with 1065 additions and 574 deletions

View File

@@ -0,0 +1,68 @@
from fastapi import APIRouter, Depends, HTTPException
from app.services.db_manager import DatabaseManager
from instance.configdb import get_database_manager
from pydantic import BaseModel
router = APIRouter()
# Модели запросов и ответов
class CreateUserRequest(BaseModel):
telegram_id: int
class UserResponse(BaseModel):
id: str
telegram_id: int
username: str
balance: float
created_at: str
updated_at: str
@router.post("/user/create", response_model=UserResponse, summary="Создать пользователя")
async def create_user(
request: CreateUserRequest,
db_manager: DatabaseManager = Depends(get_database_manager)
):
"""
Создание пользователя через Telegram ID.
"""
try:
user = await db_manager.create_user(request.telegram_id)
if user == "ERROR":
raise HTTPException(status_code=500, detail="Failed to create user")
return UserResponse(
id=user.id,
telegram_id=user.telegram_id,
username=user.username,
balance=user.balance,
created_at=user.created_at.isoformat(),
updated_at=user.updated_at.isoformat()
)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@router.get("/user/{telegram_id}", response_model=UserResponse, summary="Получить информацию о пользователе")
async def get_user(
telegram_id: int,
db_manager: DatabaseManager = Depends(get_database_manager)
):
"""
Получение информации о пользователе.
"""
try:
user = await db_manager.get_user_by_telegram_id(telegram_id)
if not user:
raise HTTPException(status_code=404, detail="User not found")
return UserResponse(
id=user.id,
telegram_id=user.telegram_id,
username=user.username,
balance=user.balance,
created_at=user.created_at.isoformat(),
updated_at=user.updated_at.isoformat()
)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))