fix(api): return real total for user pagination
Generic Container CI/CD / test-build-publish (push) Successful in 2m13s
Server CI/CD v2 / build-test-publish-and-deploy (push) Successful in 2m13s

This commit is contained in:
2026-09-15 10:55:29 +08:00
parent 682c26fddd
commit a3b4e75317
3 changed files with 35 additions and 3 deletions
+4 -1
View File
@@ -7,6 +7,7 @@ from sqlalchemy.engine.url import make_url
from sqlalchemy.exc import IntegrityError, SQLAlchemyError
from sqlalchemy.ext.asyncio import create_async_engine
from app.api.pagination import PaginatedList
from app.auth.metadata_dependencies import (
get_current_metadata_admin,
get_metadata_repository,
@@ -236,7 +237,9 @@ async def list_metadata_users(
metadata_repo: MetadataRepository = Depends(get_metadata_repository),
) -> List[MetadataUserResponse]:
users = await metadata_repo.list_users(skip=skip, limit=limit)
return [MetadataUserResponse.model_validate(user) for user in users]
total = await metadata_repo.count_users()
items = [MetadataUserResponse.model_validate(user) for user in users]
return PaginatedList(items, total=total)
@router.get("/admin/projects", response_model=List[AdminProjectResponse])
@@ -4,7 +4,7 @@ from typing import Optional, List
from uuid import UUID, uuid4
from cryptography.fernet import InvalidToken
from sqlalchemy import delete, select
from sqlalchemy import delete, func, select
from sqlalchemy.ext.asyncio import AsyncSession
from app.core.encryption import (
@@ -122,6 +122,12 @@ class MetadataRepository:
)
return list(result.scalars().all())
async def count_users(self) -> int:
result = await self.session.execute(
select(func.count()).select_from(models.User)
)
return int(result.scalar() or 0)
async def upsert_user_from_keycloak(
self,
*,