feat: Add pagination with total count to generation listings and enable filtering assets by type.

This commit is contained in:
xds
2026-02-08 02:13:59 +03:00
parent aa50b1cc03
commit 31893414eb
14 changed files with 30 additions and 9 deletions

View File

@@ -46,7 +46,10 @@ class AssetsRepo:
res = await self.collection.insert_one(asset.model_dump())
return str(res.inserted_id)
async def get_assets(self, limit: int = 10, offset: int = 0, with_data: bool = False) -> List[Asset]:
async def get_assets(self, asset_type: Optional[str] = None, limit: int = 10, offset: int = 0, with_data: bool = False) -> List[Asset]:
filter = {}
if asset_type:
filter["type"] = asset_type
args = {}
if not with_data:
args["data"] = 0
@@ -68,7 +71,7 @@ class AssetsRepo:
# So list DOES NOT return thumbnails by default.
args["thumbnail"] = 0
res = await self.collection.find({}, args).sort("created_at", -1).skip(offset).limit(limit).to_list(None)
res = await self.collection.find(filter, args).sort("created_at", -1).skip(offset).limit(limit).to_list(None)
assets = []
for doc in res:
doc["id"] = str(doc.pop("_id"))