Commit bac4c76146f743783c60c7ca00fdb8a279dcc4ef
1 parent
055920fc
Exists in
staging
and in
32 other branches
api: paginate comments
Showing
2 changed files
with
13 additions
and
0 deletions
Show diff stats
lib/noosfero/api/v1/comments.rb
| ... | ... | @@ -2,9 +2,12 @@ module Noosfero |
| 2 | 2 | module API |
| 3 | 3 | module V1 |
| 4 | 4 | class Comments < Grape::API |
| 5 | + MAX_PER_PAGE = 20 | |
| 6 | + | |
| 5 | 7 | before { authenticate! } |
| 6 | 8 | |
| 7 | 9 | resource :articles do |
| 10 | + paginate max_per_page: MAX_PER_PAGE | |
| 8 | 11 | # Collect comments from articles |
| 9 | 12 | # |
| 10 | 13 | # Parameters: | ... | ... |
test/api/comments_test.rb
| ... | ... | @@ -78,4 +78,14 @@ class CommentsTest < ActiveSupport::TestCase |
| 78 | 78 | assert_not_nil comment.source |
| 79 | 79 | end |
| 80 | 80 | |
| 81 | + should 'paginate comments' do | |
| 82 | + article = fast_create(Article, :profile_id => user.person.id, :name => "Some thing") | |
| 83 | + 5.times { article.comments.create!(:body => "some comment", :author => user.person) } | |
| 84 | + params[:per_page] = 3 | |
| 85 | + | |
| 86 | + get "/api/v1/articles/#{article.id}/comments?#{params.to_query}" | |
| 87 | + json = JSON.parse(last_response.body) | |
| 88 | + assert_equal 200, last_response.status | |
| 89 | + assert_equal 3, json["comments"].length | |
| 90 | + end | |
| 81 | 91 | end | ... | ... |