fix: lazy load

This commit is contained in:
Artem Tsyrulnikov
2025-11-10 16:31:02 +03:00
parent b43042c745
commit f8edd81395
3 changed files with 21 additions and 9 deletions

View File

@@ -135,7 +135,14 @@ class Postgres(DatabaseBase):
async def add_external_channel_to_targets(
self, external_channel_id: uuid.UUID, target_channel_ids: list[uuid.UUID]
) -> None:
external_channel = await self.session.get(domain.ExternalChannel, external_channel_id)
stmt = (
select(domain.ExternalChannel)
.where(domain.ExternalChannel.id == external_channel_id)
.options(selectinload(domain.ExternalChannel.target_channels))
)
result = await self.session.execute(stmt)
external_channel = result.scalar_one_or_none()
if not external_channel:
raise ValueError(f'ExternalChannel {external_channel_id} not found')
@@ -149,7 +156,14 @@ class Postgres(DatabaseBase):
async def remove_external_channel_from_target(
self, external_channel_id: uuid.UUID, target_channel_id: uuid.UUID
) -> None:
external_channel = await self.session.get(domain.ExternalChannel, external_channel_id)
stmt = (
select(domain.ExternalChannel)
.where(domain.ExternalChannel.id == external_channel_id)
.options(selectinload(domain.ExternalChannel.target_channels))
)
result = await self.session.execute(stmt)
external_channel = result.scalar_one_or_none()
if not external_channel:
raise ValueError(f'ExternalChannel {external_channel_id} not found')