api.rb
1.18 KB
class ProposalsDiscussionPlugin::API < Grape::API
resource :proposals_discussion_plugin do
paginate per_page: 10, max_per_page: 20
get ':id/ranking' do
article = find_article(environment.articles, params[:id])
current_page = paginate(article.ranking)
present(current_page, :with => Api::Entities::RankingItem)
#FIXME find a better way to get updated_at date
present :updated_at, current_page.blank? ? DateTime.now : current_page.first.updated_at
end
post ':id/propose' do
sanitize_params_hash(params)
parent_article = environment.articles.includes(:profile).find(params[:id])
proposal_task = ProposalsDiscussionPlugin::ProposalTask.new
proposal_task.article = params[:article]
proposal_task.article_parent_id = parent_article.id
proposal_task.article_parent = parent_article
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