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|