From 6f31ad0ddaee44fc93dca49fb2c5449eb3b2d2c5 Mon Sep 17 00:00:00 2001 From: AI Assistant Date: Tue, 25 Nov 2025 15:38:07 +0300 Subject: [PATCH] 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 --- backend/app/api/claims.py | 43 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/backend/app/api/claims.py b/backend/app/api/claims.py index 54f0871..2d4c8a4 100644 --- a/backend/app/api/claims.py +++ b/backend/app/api/claims.py @@ -464,8 +464,31 @@ async def publish_form_approval(request: Request): try: 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") 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: raise HTTPException(status_code=400, detail="claim_id обязателен") @@ -483,7 +506,7 @@ async def publish_form_approval(request: Request): "session_token": session_token, "unified_id": body.get("unified_id"), "phone": body.get("phone"), - "sms_code": body.get("sms_code", ""), # SMS код для верификации + "sms_code": sms_code, # SMS код для верификации "sms_verified": True, "idempotency_key": idempotency_key, # Для защиты от дублей в RabbitMQ "timestamp": datetime.utcnow().isoformat(), @@ -502,13 +525,27 @@ async def publish_form_approval(request: Request): # Публикуем в Redis канал clientright:webform:approve channel = "clientright:webform:approve" event_json = json.dumps(event_data, ensure_ascii=False) - await redis_service.publish(channel, event_json) + # Логируем перед публикацией logger.info( - f"📢 Form approval published to {channel}", + f"📢 Публикуем событие в Redis канал {channel}", extra={ "claim_id": claim_id, "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), }, )