class ChangesetsController < ApiController
include QueryMethods
- before_action :check_api_writable, :only => [:create, :update, :upload, :subscribe, :unsubscribe]
+ before_action :check_api_writable, :only => [:create, :update, :upload]
before_action :setup_user_auth, :only => [:show]
- before_action :authorize, :only => [:create, :update, :upload, :close, :subscribe, :unsubscribe]
+ before_action :authorize, :only => [:create, :update, :upload, :close]
authorize_resource
- before_action :require_public_data, :only => [:create, :update, :upload, :close, :subscribe, :unsubscribe]
+ before_action :require_public_data, :only => [:create, :update, :upload, :close]
before_action :set_request_formats, :except => [:create, :close, :upload]
skip_around_action :api_call_timeout, :only => [:upload]
cs.save_with_tags!
# Subscribe user to changeset comments
- cs.subscribe(current_user)
+ cs.subscribers << current_user
render :plain => cs.id.to_s
end
end
end
- ##
- # Adds a subscriber to the changeset
- def subscribe
- # Check the arguments are sane
- raise OSM::APIBadUserInput, "No id was given" unless params[:id]
-
- # Extract the arguments
- id = params[:id].to_i
-
- # Find the changeset and check it is valid
- changeset = Changeset.find(id)
- raise OSM::APIChangesetAlreadySubscribedError, changeset if changeset.subscribed?(current_user)
-
- # Add the subscriber
- changeset.subscribe(current_user)
-
- # Return a copy of the updated changeset
- @changeset = changeset
- render "show"
-
- respond_to do |format|
- format.xml
- format.json
- end
- end
-
- ##
- # Removes a subscriber from the changeset
- def unsubscribe
- # Check the arguments are sane
- raise OSM::APIBadUserInput, "No id was given" unless params[:id]
-
- # Extract the arguments
- id = params[:id].to_i
-
- # Find the changeset and check it is valid
- changeset = Changeset.find(id)
- raise OSM::APIChangesetNotSubscribedError, changeset unless changeset.subscribed?(current_user)
-
- # Remove the subscriber
- changeset.unsubscribe(current_user)
-
- # Return a copy of the updated changeset
- @changeset = changeset
- render "show"
-
- respond_to do |format|
- format.xml
- format.json
- end
- end
-
private
#------------------------------------------------------------