Commit 52d3c365ad5286a1ef2abe469c60dd0e1de801d5

Authored by Leandro Santos
2 parents 44b7e940 1c1b12d9

Merge branch 'destroy-article-api' into 'master'

Added remove article in API



See merge request !920
app/api/v1/articles.rb
... ... @@ -54,6 +54,17 @@ module Api
54 54 present_partial article, :with => Entities::Article
55 55 end
56 56  
  57 + delete ':id' do
  58 + article = environment.articles.find(params[:id])
  59 + return forbidden! unless article.allow_delete?(current_person)
  60 + begin
  61 + article.destroy
  62 + { :success => true }
  63 + rescue Exception => exception
  64 + render_api_error!(_('The article couldn\'t be removed due to some problem. Please contact the administrator.'), 400)
  65 + end
  66 + end
  67 +
57 68 desc 'Report a abuse and/or violent content in a article by id' do
58 69 detail 'Submit a abuse (in general, a content violation) report about a specific article'
59 70 params Entities::Article.documentation
... ...
test/api/articles_test.rb
... ... @@ -7,6 +7,26 @@ class ArticlesTest < ActiveSupport::TestCase
7 7 login_api
8 8 end
9 9  
  10 + should 'remove article' do
  11 + article = fast_create(Article, :profile_id => user.person.id, :name => "Some thing")
  12 + delete "/api/v1/articles/#{article.id}?#{params.to_query}"
  13 + json = JSON.parse(last_response.body)
  14 +
  15 + assert_not_equal 401, last_response.status
  16 + assert_equal true, json['success']
  17 +
  18 + assert !Article.exists?(article.id)
  19 + end
  20 +
  21 + should 'not remove article without permission' do
  22 + otherPerson = fast_create(Person, :name => "Other Person")
  23 + article = fast_create(Article, :profile_id => otherPerson.id, :name => "Some thing")
  24 + delete "/api/v1/articles/#{article.id}?#{params.to_query}"
  25 + json = JSON.parse(last_response.body)
  26 + assert_equal 403, last_response.status
  27 + assert Article.exists?(article.id)
  28 + end
  29 +
10 30 should 'list articles' do
11 31 article = fast_create(Article, :profile_id => user.person.id, :name => "Some thing")
12 32 get "/api/v1/articles/?#{params.to_query}"
... ...