fix(api): return real total for user pagination
This commit is contained in:
@@ -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,
|
||||
*,
|
||||
|
||||
Reference in New Issue
Block a user