Files
aivideo/backend/app/common/responses/api_response.py

31 lines
688 B
Python

from math import ceil
from typing import Any
from fastapi.responses import JSONResponse
def success_response(data: Any = None, message: str = "ok", status_code: int = 200) -> JSONResponse:
return JSONResponse(
status_code=status_code,
content={"code": 0, "message": message, "data": data},
)
def paginated_response(
items: list[Any],
*,
total: int,
page: int,
page_size: int,
) -> JSONResponse:
return success_response(
{
"items": items,
"page": page,
"pageSize": page_size,
"total": total,
"totalPages": ceil(total / page_size) if page_size else 1,
}
)