1 # frozen_string_literal: true
4 class ChangesetSubscriptionsController < ApiController
5 before_action :check_api_writable
6 before_action :authorize
10 before_action :require_public_data
11 before_action :set_request_formats
14 # Adds a subscriber to the changeset
16 # Check the arguments are sane
17 raise OSM::APIBadUserInput, "No id was given" unless params[:changeset_id]
19 # Extract the arguments
20 changeset_id = params[:changeset_id].to_i
22 # Find the changeset and check it is valid
23 @changeset = Changeset.find(changeset_id)
24 raise OSM::APIChangesetAlreadySubscribedError, @changeset if @changeset.subscribers.include?(current_user)
27 @changeset.subscribers << current_user
29 respond_to do |format|
36 # Removes a subscriber from the changeset
38 # Check the arguments are sane
39 raise OSM::APIBadUserInput, "No id was given" unless params[:changeset_id]
41 # Extract the arguments
42 changeset_id = params[:changeset_id].to_i
44 # Find the changeset and check it is valid
45 @changeset = Changeset.find(changeset_id)
46 raise OSM::APIChangesetNotSubscribedError, @changeset unless @changeset.subscribers.include?(current_user)
48 # Remove the subscriber
49 @changeset.subscribers.delete(current_user)
51 respond_to do |format|