diff options
author | HombreLaser <sebastian-440@live.com> | 2024-02-26 15:40:55 -0600 |
---|---|---|
committer | HombreLaser <sebastian-440@live.com> | 2024-02-26 15:40:55 -0600 |
commit | 9e38502edec81c47a54641186d888f191ed999f0 (patch) | |
tree | ca24af8b32148d1792250fff1b9d41b5ceb78c7b /src | |
parent | adb6f7e9e73716e58529d96540f204e5e0825179 (diff) |
Add pagination handling
Diffstat (limited to 'src')
-rw-r--r-- | src/controllers/comments_controller.py | 2 | ||||
-rw-r--r-- | src/queries/comments_query.py | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/controllers/comments_controller.py b/src/controllers/comments_controller.py index c9bab0d..61b32c6 100644 --- a/src/controllers/comments_controller.py +++ b/src/controllers/comments_controller.py @@ -30,7 +30,7 @@ def new(): @comments_blueprint.get('/api/comments') def index(): post = request.args.get('path') - page = query.comments_of_post(post) + page = query.comments_of_post(post, page=request.args.get('page')) if page.total == 0: abort(404) diff --git a/src/queries/comments_query.py b/src/queries/comments_query.py index e343667..5312cca 100644 --- a/src/queries/comments_query.py +++ b/src/queries/comments_query.py @@ -10,9 +10,16 @@ class CommentsQuery(BaseQuery): def all_comments(self): return db.paginate(db.select(Comment)) - def comments_of_post(self, post): + def comments_of_post(self, post, page=1): + try: + if page is not None and isinstance(page, str): + page = int(page) + except ValueError: + page = 1 + return db.paginate( - db.select(Comment).where(Comment.post == post).order_by(Comment.created_at.desc()) + db.select(Comment).where(Comment.post == post).order_by(Comment.created_at.desc()), + page=page, max_per_page=5 ) def replies_of(self, comment_id): |