From c49e3f7c2d882ce75ba0a2f2093e56ad90faacfe Mon Sep 17 00:00:00 2001 From: ytqh Date: Sun, 16 Mar 2025 19:12:10 +0800 Subject: [PATCH] fix students total --- api/controllers/admin/students/students.py | 2 +- api/fields/end_user_fields.py | 3 +-- api/libs/infinite_scroll_pagination.py | 6 ++++++ api/services/end_user_service.py | 8 +++----- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/api/controllers/admin/students/students.py b/api/controllers/admin/students/students.py index 8f93190baa..b3467706e5 100644 --- a/api/controllers/admin/students/students.py +++ b/api/controllers/admin/students/students.py @@ -54,7 +54,7 @@ class StudentList(Resource): total: type: integer description: Total number of students matching filters - students: + data: type: array items: type: object diff --git a/api/fields/end_user_fields.py b/api/fields/end_user_fields.py index 973d54122d..f643266166 100644 --- a/api/fields/end_user_fields.py +++ b/api/fields/end_user_fields.py @@ -23,7 +23,6 @@ detailed_end_user_fields = { } end_users_infinite_scroll_pagination_fields = { - "limit": fields.Integer, - "has_more": fields.Boolean, + "total": fields.Integer, "data": fields.List(fields.Nested(detailed_end_user_fields)), } diff --git a/api/libs/infinite_scroll_pagination.py b/api/libs/infinite_scroll_pagination.py index 133ccb1883..3777987f43 100644 --- a/api/libs/infinite_scroll_pagination.py +++ b/api/libs/infinite_scroll_pagination.py @@ -3,3 +3,9 @@ class InfiniteScrollPagination: self.data = data self.limit = limit self.has_more = has_more + + +class MultiPagePagination: + def __init__(self, data, total): + self.data = data + self.total = total diff --git a/api/services/end_user_service.py b/api/services/end_user_service.py index 46479a6ab7..063916febb 100644 --- a/api/services/end_user_service.py +++ b/api/services/end_user_service.py @@ -1,16 +1,14 @@ from typing import Any, Dict, Optional, Tuple from extensions.ext_database import db -from libs.infinite_scroll_pagination import InfiniteScrollPagination +from libs.infinite_scroll_pagination import MultiPagePagination from models.model import App, Conversation, EndUser, Message from sqlalchemy import and_, desc, func class EndUserService: @staticmethod - def pagination_by_filters( - app_model: App, filters: Dict[str, Any], offset: int, limit: int - ) -> InfiniteScrollPagination: + def pagination_by_filters(app_model: App, filters: Dict[str, Any], offset: int, limit: int) -> MultiPagePagination: """ Get a list of end users with filtering and pagination @@ -115,7 +113,7 @@ class EndUserService: users.append(end_user_dict) # Format and return results - return InfiniteScrollPagination(data=users, limit=limit, has_more=total_count > offset + limit) + return MultiPagePagination(data=users, total=total_count) @staticmethod def load_end_user_by_id(end_user_id: str) -> EndUser: