mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-06-29 15:31:05 +08:00
Feature: Allow page_size max value 100 (#15292)
Feature: Allow page_size max value 100
This commit is contained in:
24
api/utils/pagination_utils.py
Normal file
24
api/utils/pagination_utils.py
Normal file
@@ -0,0 +1,24 @@
|
||||
#
|
||||
# Copyright 2026 The InfiniFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
REST_API_MAX_PAGE_SIZE = 100
|
||||
|
||||
|
||||
def validate_rest_api_page_size(page_size: int) -> int:
|
||||
"""Validate REST API page_size values against the public maximum."""
|
||||
if page_size > REST_API_MAX_PAGE_SIZE:
|
||||
raise ValueError(f"page_size must be less than or equal to {REST_API_MAX_PAGE_SIZE}")
|
||||
return page_size
|
||||
@@ -29,6 +29,7 @@ from werkzeug.exceptions import BadRequest, UnsupportedMediaType
|
||||
|
||||
from api.constants import DATASET_NAME_LIMIT, FILE_NAME_LEN_LIMIT
|
||||
from api.db import FileType
|
||||
from api.utils.pagination_utils import validate_rest_api_page_size
|
||||
from common.constants import RetCode
|
||||
|
||||
|
||||
@@ -960,6 +961,11 @@ class BaseListReq(BaseModel):
|
||||
"""Validate and normalize an optional list filter id."""
|
||||
return validate_uuid1_hex(v)
|
||||
|
||||
@field_validator("page_size")
|
||||
@classmethod
|
||||
def validate_page_size(cls, v: int) -> int:
|
||||
return validate_rest_api_page_size(v)
|
||||
|
||||
|
||||
class ListDatasetReq(BaseListReq):
|
||||
"""Request model for listing datasets."""
|
||||
@@ -1010,10 +1016,15 @@ class ListFileReq(BaseModel):
|
||||
parent_id: Annotated[str | None, Field(default=None)]
|
||||
keywords: Annotated[str, Field(default="")]
|
||||
page: Annotated[int, Field(default=1, ge=1)]
|
||||
page_size: Annotated[int, Field(default=15, ge=1, le=100)]
|
||||
page_size: Annotated[int, Field(default=15, ge=1)]
|
||||
orderby: Annotated[str, Field(default="create_time")]
|
||||
desc: Annotated[bool, Field(default=True)]
|
||||
|
||||
@field_validator("page_size")
|
||||
@classmethod
|
||||
def validate_page_size(cls, v: int) -> int:
|
||||
return validate_rest_api_page_size(v)
|
||||
|
||||
|
||||
def validate_immutable_fields(update_doc_req: UpdateDocumentReq, doc):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user