def find_post_by_keyword_pagination(cls, keyword, page=1, per_page=10): """ Find all post publish by specific author :param category_name: category name :param page: page index begin at 1 :param per_page: :return: """ if not keyword: raise InvalidFieldError("category cannot be empty", ["search string"]) args = { "title": "%s" % keyword, "content": "%s" % keyword, } # validate pagination info if not is_id_valid(page): page = 1 else: page = int(page) if int(per_page) <= 0 or int(per_page) >= 50: per_page = 10 try: start = (page - 1) * per_page # id in sql start at 1 post_list = DBPost.pagination_search(search_dict=args, page=page, per_page=per_page, order_by="time desc") return post_list except Exception as e: raise InvalidFieldError("Can not search with given string", ["search string"])
def find_post_by_category_pagination(cls, category_name, page=1, per_page=10): """ Find all post publish by specific author :param category_name: category name :param page: page index begin at 1 :param per_page: :return: """ if not category_name: raise InvalidFieldError("category cannot be empty", ["category"]) cat_slug = get_slug_from_string(category_name) args = {"categories": "`%s`" % cat_slug} # validate pagination info if not is_id_valid(page): page = 1 if int(per_page) <= 0 or int(per_page) >= 50: per_page = 10 pagination = DBPost.pagination_search(search_dict=args, page=page, per_page=per_page, order_by="time desc") return pagination