Изменения в backend: - Обновления в n8n_proxy.py - Изменения в SMS API - Обновления конфигурации - Улучшения SMS сервиса Изменения в frontend: - Обновления Step1Phone компонента - Изменения в Step3Payment - Улучшения generateConfirmationFormHTML - Обновления ClaimForm страницы - Изменения в vite.config.ts Статистика: +242 строки, -81 строка
54 lines
1.5 KiB
Python
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 # Всегда возвращаем код для 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="Неверный код или код истек"
|
|
)
|
|
|