class ChangesetCommentsController < ApplicationController
before_action :authorize_web, :only => [:comments_feed]
before_action :set_locale, :only => [:comments_feed]
- before_action :authorize, :only => [:comment, :hide_comment, :unhide_comment]
+ before_action :authorize, :only => [:create, :hide_comment, :unhide_comment]
before_action :require_moderator, :only => [:hide_comment, :unhide_comment]
- before_action :require_allow_write_api, :only => [:comment, :hide_comment, :unhide_comment]
- before_action :require_public_data, :only => [:comment]
- before_action :check_api_writable, :only => [:comment, :hide_comment, :unhide_comment]
- before_action :check_api_readable, :except => [:comment, :comments_feed]
+ before_action :require_allow_write_api, :only => [:create, :hide_comment, :unhide_comment]
+ before_action :require_public_data, :only => [:create]
+ before_action :check_api_writable, :only => [:create, :hide_comment, :unhide_comment]
+ before_action :check_api_readable, :except => [:create, :comments_feed]
before_action(:only => [:comments_feed]) { |c| c.check_database_readable(true) }
around_action :api_call_handle_error, :except => [:comments_feed]
around_action :api_call_timeout, :except => [:comments_feed]
##
# Add a comment to a changeset
- def comment
+ def create
# Check the arguments are sane
raise OSM::APIBadUserInput, "No id was given" unless params[:id]
raise OSM::APIBadUserInput, "No text was given" if params[:text].blank?
put "changeset/:id" => "changeset#update", :id => /\d+/
put "changeset/:id/close" => "changeset#close", :id => /\d+/
get "changesets" => "changeset#query"
- post "changeset/:id/comment" => "changeset_comments#comment", :as => :changeset_comment, :id => /\d+/
+ post "changeset/:id/comment" => "changeset_comments#create", :as => :changeset_comment, :id => /\d+/
post "changeset/comment/:id/hide" => "changeset_comments#hide_comment", :as => :changeset_comment_hide, :id => /\d+/
post "changeset/comment/:id/unhide" => "changeset_comments#unhide_comment", :as => :changeset_comment_unhide, :id => /\d+/
def test_routes
assert_routing(
{ :path => "/api/0.6/changeset/1/comment", :method => :post },
- { :controller => "changeset_comments", :action => "comment", :id => "1" }
+ { :controller => "changeset_comments", :action => "create", :id => "1" }
)
assert_routing(
{ :path => "/api/0.6/changeset/comment/1/hide", :method => :post },
assert_difference "ChangesetComment.count", 1 do
assert_no_difference "ActionMailer::Base.deliveries.size" do
perform_enqueued_jobs do
- post :comment, :params => { :id => private_user_closed_changeset.id, :text => "This is a comment" }
+ post :create, :params => { :id => private_user_closed_changeset.id, :text => "This is a comment" }
end
end
end
assert_difference "ChangesetComment.count", 1 do
assert_difference "ActionMailer::Base.deliveries.size", 1 do
perform_enqueued_jobs do
- post :comment, :params => { :id => changeset.id, :text => "This is a comment" }
+ post :create, :params => { :id => changeset.id, :text => "This is a comment" }
end
end
end
assert_difference "ChangesetComment.count", 1 do
assert_difference "ActionMailer::Base.deliveries.size", 2 do
perform_enqueued_jobs do
- post :comment, :params => { :id => changeset.id, :text => "This is a comment" }
+ post :create, :params => { :id => changeset.id, :text => "This is a comment" }
end
end
end
# create comment fail
def test_create_comment_fail
# unauthorized
- post :comment, :params => { :id => create(:changeset, :closed).id, :text => "This is a comment" }
+ post :create, :params => { :id => create(:changeset, :closed).id, :text => "This is a comment" }
assert_response :unauthorized
basic_authorization create(:user).email, "test"
# bad changeset id
assert_no_difference "ChangesetComment.count" do
- post :comment, :params => { :id => 999111, :text => "This is a comment" }
+ post :create, :params => { :id => 999111, :text => "This is a comment" }
end
assert_response :not_found
# not closed changeset
assert_no_difference "ChangesetComment.count" do
- post :comment, :params => { :id => create(:changeset).id, :text => "This is a comment" }
+ post :create, :params => { :id => create(:changeset).id, :text => "This is a comment" }
end
assert_response :conflict
# no text
assert_no_difference "ChangesetComment.count" do
- post :comment, :params => { :id => create(:changeset, :closed).id }
+ post :create, :params => { :id => create(:changeset, :closed).id }
end
assert_response :bad_request
# empty text
assert_no_difference "ChangesetComment.count" do
- post :comment, :params => { :id => create(:changeset, :closed).id, :text => "" }
+ post :create, :params => { :id => create(:changeset, :closed).id, :text => "" }
end
assert_response :bad_request
end