Files
aiform_dev/backend/app/api/sms.py
AI Assistant 0f82eef08d 🚀 MVP: FastAPI + React форма с SMS верификацией
 Инфраструктура: PostgreSQL, Redis, RabbitMQ, S3
 Backend: SMS сервис + API endpoints
 Frontend: React форма (3 шага) + SMS верификация
2025-10-24 16:19:58 +03:00

54 lines
1.5 KiB
Python

"""
SMS API Routes
"""
from fastapi import APIRouter, HTTPException
from ..services.sms_service import sms_service
from .models import SMSSendRequest, SMSVerifyRequest
router = APIRouter(prefix="/api/v1/sms", tags=["SMS"])
@router.post("/send")
async def send_sms_code(request: SMSSendRequest):
"""
Отправить SMS код верификации
- **phone**: Номер телефона в формате +79001234567
"""
code = await sms_service.send_verification_code(request.phone)
if code:
return {
"success": True,
"message": "Код отправлен на указанный номер",
"debug_code": code if sms_service.enabled else None # Показываем код только в dev
}
else:
raise HTTPException(
status_code=429,
detail="Слишком много запросов. Попробуйте через минуту."
)
@router.post("/verify")
async def verify_sms_code(request: SMSVerifyRequest):
"""
Проверить SMS код
- **phone**: Номер телефона
- **code**: 6-значный код из SMS
"""
is_valid = await sms_service.verify_code(request.phone, request.code)
if is_valid:
return {
"success": True,
"message": "Код подтвержден"
}
else:
raise HTTPException(
status_code=400,
detail="Неверный код или код истек"
)