Commit a8e4e8b9413314bff239597b313a1f8c592c5654

Authored by Victor Costa
1 parent 7c83fd47

comment_paragraph: return count for paragraphs in api

plugins/comment_paragraph/lib/comment_paragraph_plugin/api.rb
... ... @@ -21,5 +21,11 @@ class CommentParagraphPlugin::API < Grape::API
21 21 present_partial article, :with => Noosfero::API::Entities::Article
22 22 end
23 23 end
  24 +
  25 + get ':id/comment_paragraph_plugin/comments/count' do
  26 + article = find_article(environment.articles, params[:id])
  27 + comments = select_filtered_collection_of(article, :comments, params)
  28 + comments.group(:paragraph_uuid).count
  29 + end
24 30 end
25 31 end
... ...
plugins/comment_paragraph/test/unit/api_test.rb
... ... @@ -56,4 +56,16 @@ class APITest < ActiveSupport::TestCase
56 56 assert_equal 403, last_response.status
57 57 end
58 58 end
  59 +
  60 + should 'return comment counts grouped by paragraph' do
  61 + article = fast_create(TextArticle, :profile_id => person.id, :name => "Some thing", :published => false)
  62 + fast_create(Comment, :paragraph_uuid => '1', :source_id => article.id)
  63 + fast_create(Comment, :paragraph_uuid => nil, :source_id => article.id)
  64 + fast_create(Comment, :paragraph_uuid => '2', :source_id => article.id)
  65 + fast_create(Comment, :paragraph_uuid => '2', :source_id => article.id)
  66 + get "/api/v1/articles/#{article.id}/comment_paragraph_plugin/comments/count?#{params.to_query}"
  67 +
  68 + json = JSON.parse(last_response.body)
  69 + assert_equal({"1"=>1, ""=>1, "2"=>2}, json)
  70 + end
59 71 end
... ...