diff --git a/chat/handler.py b/chat/handler.py index 3df1977..b3c0ff6 100644 --- a/chat/handler.py +++ b/chat/handler.py @@ -7,10 +7,9 @@ from auth.service import AuthService from flask import request from flask_socketio import Namespace, emit -from pagination.pagination import int_to_sort +from pagination.pagination import PaginationOptions from user.model import User from user.service import UserService -from util.validate_request import validate_object from werkzeug.exceptions import NotFound, Unauthorized from chat.service import ChatHistoryPaginationOptions, ChatService @@ -101,23 +100,9 @@ def on_chat_list(self, data): opts_dict["order_by"] = data["order_by"] opts_dict["from_user_id"] = int(user.id) opts_dict["to_user_id"] = int(data["to_user"]) - if hasattr(data, "search"): - opts_dict["search"] = data["search"] - - vobj = validate_object(ChatHistoryPaginationOptions, opts_dict) - - opts = ChatHistoryPaginationOptions() - opts.page = int(vobj.page) - opts.limit = int(vobj.limit) - opts.sort = int_to_sort(int(vobj.sort)) - opts.order_by = vobj.order_by - opts.from_user_id = int(vobj.from_user_id) - opts.to_user_id = int(vobj.to_user_id) - if hasattr(vobj, "search"): - opts.search = vobj.search - else: - opts.search = "" + opts_dict["search"] = data["search"] if hasattr(data, "search") else "" + opts = PaginationOptions.from_dict(opts_dict, ChatHistoryPaginationOptions) chat_history = ChatService.list_chat_history(opts) response = [] diff --git a/pagination/pagination.py b/pagination/pagination.py index a3ff67f..a94f6d7 100644 --- a/pagination/pagination.py +++ b/pagination/pagination.py @@ -31,7 +31,7 @@ class PaginationOptions(Schema): sort = fields.Integer(required=True, validate=validate.Range(min=0, max=1)) order_by = fields.String(required=True, validate=validate.Length(min=1, max=50)) search = fields.String( - required=False, validate=validate.Length(min=1, max=50), default="" + required=False, validate=validate.Length(min=0, max=50), default="" ) @classmethod