diff --git a/routes/users.py b/routes/users.py index fa6241d..13a0100 100644 --- a/routes/users.py +++ b/routes/users.py @@ -1,3 +1,5 @@ +import logging + from fastapi import APIRouter, Depends, HTTPException from core.deps import get_auth_context @@ -8,7 +10,7 @@ from schemas.dto import AuthContext from schemas.user import SubscriptionData, UserInfo router = APIRouter(prefix="/users") - +logger = logging.getLogger(__name__) @router.get("/me", response_model=UserInfo) async def get_me(ctx: AuthContext = Depends(get_auth_context)): @@ -34,6 +36,17 @@ async def get_subscription(ctx: AuthContext = Depends(get_auth_context)): ) rw_user = await get_rw_user(get_sdk(), ctx.user.telegram_id, ctx.user.username) + if not rw_user: + logger.critical("RW user not found for existing local subscription (user_id=%d, sub_id=%d)", ctx.user.id, sub.id) + return SubscriptionData( + has_subscription=True, + devices=sub.devices, + expires_at=sub.expires_at, + addon_ids=[a.addon_id for a in sub.addons], + subscription_link=None, + duration_days=sub.duration_days, + ) + return SubscriptionData( has_subscription=True, devices=sub.devices,