debug: Add detailed logging for SMS code in backend
Added comprehensive logging to track SMS code: - Log all keys in request body - Log SMS code presence and value - Log extracted SMS code before adding to event_data - This will help identify why SMS code might not appear in Redis Files: - backend/app/api/claims.py
This commit is contained in:
@@ -464,8 +464,31 @@ async def publish_form_approval(request: Request):
|
|||||||
try:
|
try:
|
||||||
body = await request.json()
|
body = await request.json()
|
||||||
|
|
||||||
|
# Детальное логирование всего body для отладки
|
||||||
|
logger.info(
|
||||||
|
f"📥 Получен запрос на публикацию формы подтверждения",
|
||||||
|
extra={
|
||||||
|
"body_keys": list(body.keys()) if isinstance(body, dict) else "not_dict",
|
||||||
|
"body_type": type(body).__name__,
|
||||||
|
"sms_code_in_body": "sms_code" in body if isinstance(body, dict) else False,
|
||||||
|
"sms_code_value": body.get("sms_code", "NOT_FOUND") if isinstance(body, dict) else "NOT_DICT",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
claim_id = body.get("claim_id")
|
claim_id = body.get("claim_id")
|
||||||
session_token = body.get("session_token") or body.get("session_id")
|
session_token = body.get("session_token") or body.get("session_id")
|
||||||
|
sms_code = body.get("sms_code", "")
|
||||||
|
|
||||||
|
# Логируем полученные данные для отладки
|
||||||
|
logger.info(
|
||||||
|
f"📥 Извлеченные данные из запроса",
|
||||||
|
extra={
|
||||||
|
"claim_id": claim_id,
|
||||||
|
"sms_code": sms_code if sms_code else "(пусто)",
|
||||||
|
"sms_code_length": len(sms_code) if sms_code else 0,
|
||||||
|
"has_sms_code": bool(sms_code),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
if not claim_id:
|
if not claim_id:
|
||||||
raise HTTPException(status_code=400, detail="claim_id обязателен")
|
raise HTTPException(status_code=400, detail="claim_id обязателен")
|
||||||
@@ -483,7 +506,7 @@ async def publish_form_approval(request: Request):
|
|||||||
"session_token": session_token,
|
"session_token": session_token,
|
||||||
"unified_id": body.get("unified_id"),
|
"unified_id": body.get("unified_id"),
|
||||||
"phone": body.get("phone"),
|
"phone": body.get("phone"),
|
||||||
"sms_code": body.get("sms_code", ""), # SMS код для верификации
|
"sms_code": sms_code, # SMS код для верификации
|
||||||
"sms_verified": True,
|
"sms_verified": True,
|
||||||
"idempotency_key": idempotency_key, # Для защиты от дублей в RabbitMQ
|
"idempotency_key": idempotency_key, # Для защиты от дублей в RabbitMQ
|
||||||
"timestamp": datetime.utcnow().isoformat(),
|
"timestamp": datetime.utcnow().isoformat(),
|
||||||
@@ -502,13 +525,27 @@ async def publish_form_approval(request: Request):
|
|||||||
# Публикуем в Redis канал clientright:webform:approve
|
# Публикуем в Redis канал clientright:webform:approve
|
||||||
channel = "clientright:webform:approve"
|
channel = "clientright:webform:approve"
|
||||||
event_json = json.dumps(event_data, ensure_ascii=False)
|
event_json = json.dumps(event_data, ensure_ascii=False)
|
||||||
await redis_service.publish(channel, event_json)
|
|
||||||
|
|
||||||
|
# Логируем перед публикацией
|
||||||
logger.info(
|
logger.info(
|
||||||
f"📢 Form approval published to {channel}",
|
f"📢 Публикуем событие в Redis канал {channel}",
|
||||||
extra={
|
extra={
|
||||||
"claim_id": claim_id,
|
"claim_id": claim_id,
|
||||||
"idempotency_key": idempotency_key,
|
"idempotency_key": idempotency_key,
|
||||||
|
"sms_code": sms_code if sms_code else "(пусто)",
|
||||||
|
"has_sms_code": bool(sms_code),
|
||||||
|
"event_data_keys": list(event_data.keys()),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
await redis_service.publish(channel, event_json)
|
||||||
|
|
||||||
|
logger.info(
|
||||||
|
f"✅ Form approval published to {channel}",
|
||||||
|
extra={
|
||||||
|
"claim_id": claim_id,
|
||||||
|
"idempotency_key": idempotency_key,
|
||||||
|
"sms_code_included": bool(sms_code),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user