module Api
class ChangesetCommentsController < ApiController
- before_action :check_api_writable
- before_action :authorize
+ include QueryMethods
+
+ before_action :check_api_writable, :except => [:index]
+ before_action :authorize, :except => [:index]
authorize_resource
before_action :require_public_data, :only => [:create]
+
before_action :set_request_formats
- around_action :api_call_handle_error
- around_action :api_call_timeout
+
+ ##
+ # show all comments or search for a subset
+ def index
+ @comments = ChangesetComment.includes(:author).where(:visible => true).order("created_at DESC")
+ @comments = query_conditions_time(@comments)
+ @comments = query_conditions_user(@comments, :author)
+ @comments = query_limit(@comments)
+ end
##
# Add a comment to a changeset
def create
# Check the arguments are sane
- raise OSM::APIBadUserInput, "No id was given" unless params[:id]
+ raise OSM::APIBadUserInput, "No id was given" unless params[:changeset_id]
raise OSM::APIBadUserInput, "No text was given" if params[:text].blank?
raise OSM::APIRateLimitExceeded if rate_limit_exceeded?
# Extract the arguments
- id = params[:id].to_i
+ changeset_id = params[:changeset_id].to_i
body = params[:text]
# Find the changeset and check it is valid
- changeset = Changeset.find(id)
+ changeset = Changeset.find(changeset_id)
raise OSM::APIChangesetNotYetClosedError, changeset if changeset.open?
# Add a comment to the changeset