fix: rw fetching + addon orm refreshing

This commit is contained in:
2026-08-20 11:22:39 +07:00
parent b759a997d9
commit e212492b30
3 changed files with 6 additions and 10 deletions

View File

@@ -37,7 +37,4 @@ class User(Base):
"Subscription", back_populates="user", lazy="selectin" "Subscription", back_populates="user", lazy="selectin"
) )
sessions: Mapped[list["Session"]] = relationship(back_populates="user", lazy="selectin") sessions: Mapped[list["Session"]] = relationship(back_populates="user", lazy="selectin")
referal: Mapped["User | None"] = relationship( referal: Mapped["User | None"] = relationship("User", remote_side=[id], lazy="selectin")
"User",
remote_side=[id],
)

10
external/rw.py vendored
View File

@@ -76,10 +76,7 @@ def _parse_user(user_dto) -> RWUserInfo:
) )
def _build_rw_username(*, telegram_id: int | None, username: str | None) -> str | None: def _build_rw_username(*, username: str | None) -> str | None:
if telegram_id is not None:
return f"tg_{telegram_id}"
if not username: if not username:
return None return None
@@ -439,7 +436,7 @@ async def get_rw_user(
rw_user = await get_user_by_telegram_id(sdk, telegram_id) rw_user = await get_user_by_telegram_id(sdk, telegram_id)
if rw_user is None: if rw_user is None:
rw_username = _build_rw_username(telegram_id=telegram_id, username=username) rw_username = _build_rw_username(username=username)
if rw_username is None: if rw_username is None:
logger.warning( logger.warning(
"Cannot build username for telegram_id=%s username=%s", "Cannot build username for telegram_id=%s username=%s",
@@ -450,6 +447,7 @@ async def get_rw_user(
rw_user = await get_user_by_username(sdk, rw_username) rw_user = await get_user_by_username(sdk, rw_username)
return rw_user return rw_user
return rw_user
async def sync_subscription_by_telegram_id( async def sync_subscription_by_telegram_id(
@@ -466,7 +464,7 @@ async def sync_subscription_by_telegram_id(
rw_user = await get_rw_user(sdk, telegram_id=telegram_id, username=username) rw_user = await get_rw_user(sdk, telegram_id=telegram_id, username=username)
if rw_user is None: if rw_user is None:
rw_username = _build_rw_username(telegram_id=telegram_id, username=username) rw_username = _build_rw_username(username=username)
rw_user = await create_user( rw_user = await create_user(
sdk=sdk, sdk=sdk,
username=rw_username, username=rw_username,

View File

@@ -38,6 +38,7 @@ class OrderRepository:
self.session.add(addon) self.session.add(addon)
await self.session.commit() await self.session.commit()
await self.session.refresh(order, attribute_names=["addons"])
return order return order