cs.save_with_tags!
# Subscribe user to changeset comments
- cs.subscribers << current_user
+ cs.subscribe(current_user)
render :plain => cs.id.to_s
end
diff_reader = DiffReader.new(request.raw_post, changeset)
Changeset.transaction do
result = diff_reader.commit
+ # the number of changes in this changeset has already been
+ # updated and is visible in this transaction so we don't need
+ # to allow for any more when checking the limit
+ check_rate_limit(0)
render :xml => result.to_s
end
end
# Find the changeset and check it is valid
changeset = Changeset.find(id)
- raise OSM::APIChangesetAlreadySubscribedError, changeset if changeset.subscribers.exists?(current_user.id)
+ raise OSM::APIChangesetAlreadySubscribedError, changeset if changeset.subscribed?(current_user)
# Add the subscriber
- changeset.subscribers << current_user
+ changeset.subscribe(current_user)
# Return a copy of the updated changeset
@changeset = changeset
# Find the changeset and check it is valid
changeset = Changeset.find(id)
- raise OSM::APIChangesetNotSubscribedError, changeset unless changeset.subscribers.exists?(current_user.id)
+ raise OSM::APIChangesetNotSubscribedError, changeset unless changeset.subscribed?(current_user)
# Remove the subscriber
- changeset.subscribers.delete(current_user)
+ changeset.unsubscribe(current_user)
# Return a copy of the updated changeset
@changeset = changeset
##
# if a bounding box was specified do some sanity checks.
# restrict changesets to those enclosed by a bounding box
- # we need to return both the changesets and the bounding box
def conditions_bbox(changesets, bbox)
if bbox
bbox.check_boundaries
raise OSM::APINotFoundError if current_user.nil? || current_user != u
end
- changesets.where(:user_id => u.id)
+ changesets.where(:user => u)
end
end