fix part 3
This commit is contained in:
@@ -49,25 +49,17 @@ class ImageRepository:
|
||||
result = await self.db.execute(select(Image).where(Image.id == image_id))
|
||||
return result.scalar_one_or_none()
|
||||
|
||||
async def get_user_images(
|
||||
self, user_id: UUID, limit: int = 50, offset: int = 0
|
||||
) -> tuple[Sequence[Image], int]:
|
||||
async def get_user_images(self, user_id: UUID, limit: int = 50, offset: int = 0) -> tuple[Sequence[Image], int]:
|
||||
"""Get all images for a user with pagination."""
|
||||
from sqlalchemy import func
|
||||
|
||||
|
||||
# Get total count efficiently
|
||||
count_result = await self.db.execute(
|
||||
select(func.count(Image.id)).where(Image.user_id == user_id)
|
||||
)
|
||||
count_result = await self.db.execute(select(func.count(Image.id)).where(Image.user_id == user_id))
|
||||
total = count_result.scalar_one()
|
||||
|
||||
|
||||
# Get paginated images
|
||||
result = await self.db.execute(
|
||||
select(Image)
|
||||
.where(Image.user_id == user_id)
|
||||
.order_by(Image.created_at.desc())
|
||||
.limit(limit)
|
||||
.offset(offset)
|
||||
select(Image).where(Image.user_id == user_id).order_by(Image.created_at.desc()).limit(limit).offset(offset)
|
||||
)
|
||||
images = result.scalars().all()
|
||||
return images, total
|
||||
@@ -126,17 +118,14 @@ class ImageRepository:
|
||||
async def get_board_images(self, board_id: UUID) -> Sequence[BoardImage]:
|
||||
"""Get all images for a board, ordered by z-order."""
|
||||
result = await self.db.execute(
|
||||
select(BoardImage)
|
||||
.where(BoardImage.board_id == board_id)
|
||||
.order_by(BoardImage.z_order.asc())
|
||||
select(BoardImage).where(BoardImage.board_id == board_id).order_by(BoardImage.z_order.asc())
|
||||
)
|
||||
return result.scalars().all()
|
||||
|
||||
async def get_board_image(self, board_id: UUID, image_id: UUID) -> BoardImage | None:
|
||||
"""Get a specific board image."""
|
||||
result = await self.db.execute(
|
||||
select(BoardImage)
|
||||
.where(BoardImage.board_id == board_id, BoardImage.image_id == image_id)
|
||||
select(BoardImage).where(BoardImage.board_id == board_id, BoardImage.image_id == image_id)
|
||||
)
|
||||
return result.scalar_one_or_none()
|
||||
|
||||
@@ -151,7 +140,7 @@ class ImageRepository:
|
||||
) -> BoardImage | None:
|
||||
"""Update board image position, transformations, z-order, or group."""
|
||||
board_image = await self.get_board_image(board_id, image_id)
|
||||
|
||||
|
||||
if not board_image:
|
||||
return None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user