From 6d5f6b634a4a492bc5c40cf69372d63f41969c75 Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Wed, 3 Jun 2015 17:42:50 -0300 Subject: [PATCH] Add api method to create proposal task --- lib/proposals_discussion_plugin/api.rb | 16 ++++++++++++++++ test/unit/api_test.rb | 11 +++++++++++ 2 files changed, 27 insertions(+), 0 deletions(-) diff --git a/lib/proposals_discussion_plugin/api.rb b/lib/proposals_discussion_plugin/api.rb index 89954a4..1d21d5f 100644 --- a/lib/proposals_discussion_plugin/api.rb +++ b/lib/proposals_discussion_plugin/api.rb @@ -22,6 +22,22 @@ class ProposalsDiscussionPlugin::API < Grape::API ranking end + post ':id/propose' do + parent_article = environment.articles.find(params[:id]) + + proposal_task = ProposalsDiscussionPlugin::ProposalTask.new + proposal_task.article = params[:article] + proposal_task.article[:parent_id] = parent_article.id + proposal_task.target = parent_article.profile + proposal_task.requestor = current_person + + unless proposal_task.save + render_api_errors!(proposal_task.article_object.errors.full_messages) + end + {:success => true} + #present proposal_task, :with => Entities::Task, :fields => params[:fields] + end + end end diff --git a/test/unit/api_test.rb b/test/unit/api_test.rb index 9efcce7..92a593f 100644 --- a/test/unit/api_test.rb +++ b/test/unit/api_test.rb @@ -34,4 +34,15 @@ class APITest < ActiveSupport::TestCase assert_equal [proposal2.id, proposal3.id, proposal1.id], json['proposals'].map {|p| p['id']} end + should 'suggest article children' do + discussion = fast_create(ProposalsDiscussionPlugin::Discussion, :profile_id => user.person.id) + topic = fast_create(ProposalsDiscussionPlugin::Topic, :profile_id => user.person.id, :parent_id => discussion.id) + params[:article] = {:name => "Proposal name", :body => "Proposal body"} + assert_difference "ProposalsDiscussionPlugin::ProposalTask.count" do + post "/api/v1/proposals_discussion_plugin/#{topic.id}/propose?#{params.to_query}" + end + json = JSON.parse(last_response.body) + assert json['success'] + end + end -- libgit2 0.21.2