Spaces:
Runtime error
Runtime error
File size: 934 Bytes
66340f1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
from typing import Any, List
from fastapi.params import Depends
from fastapi.routing import APIRouter
from sqlalchemy import func, select
from sqlalchemy.ext.asyncio.session import AsyncSession
from starlette.responses import Response
from app.deps.db import get_async_session
from app.deps.users import current_superuser
from app.models.user import User
from app.schemas.user import UserRead
router = APIRouter()
@router.get("/users", response_model=List[UserRead])
async def get_users(
response: Response,
session: AsyncSession = Depends(get_async_session),
user: User = Depends(current_superuser),
skip: int = 0,
limit: int = 100,
) -> Any:
total = await session.scalar(select(func.count(User.id)))
users = (
(await session.execute(select(User).offset(skip).limit(limit))).scalars().all()
)
response.headers["Content-Range"] = f"{skip}-{skip + len(users)}/{total}"
return users
|