X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/8fe18995964717ff6f88858291c6f464cc40397f..337bda6a90b8d37a533f334ad50f3893c55b8e57:/app/controllers/changeset_controller.rb diff --git a/app/controllers/changeset_controller.rb b/app/controllers/changeset_controller.rb index 137991276..da066a73a 100644 --- a/app/controllers/changeset_controller.rb +++ b/app/controllers/changeset_controller.rb @@ -83,7 +83,7 @@ class ChangesetController < ApplicationController # the request is in pseudo-osm format... this is kind-of an # abuse, maybe should change to some other format? - doc = XML::Parser.string(request.raw_post).parse + doc = XML::Parser.string(request.raw_post, :options => XML::Parser::Options::NOERROR).parse doc.find("//osm/node").each do |n| lon << n["lon"].to_f * GeoRecord::SCALE lat << n["lat"].to_f * GeoRecord::SCALE @@ -256,7 +256,7 @@ class ChangesetController < ApplicationController end if params[:display_name] - user = User.find_by_display_name(params[:display_name]) + user = User.find_by(:display_name => params[:display_name]) if !user || !user.active? render_unknown_user params[:display_name] return @@ -308,8 +308,8 @@ class ChangesetController < ApplicationController # Add a comment to a changeset def comment # Check the arguments are sane - fail OSM::APIBadUserInput.new("No id was given") unless params[:id] - fail OSM::APIBadUserInput.new("No text was given") if params[:text].blank? + raise OSM::APIBadUserInput.new("No id was given") unless params[:id] + raise OSM::APIBadUserInput.new("No text was given") if params[:text].blank? # Extract the arguments id = params[:id].to_i @@ -317,7 +317,7 @@ class ChangesetController < ApplicationController # Find the changeset and check it is valid changeset = Changeset.find(id) - fail OSM::APIChangesetNotYetClosedError.new(changeset) if changeset.is_open? + raise OSM::APIChangesetNotYetClosedError.new(changeset) if changeset.is_open? # Add a comment to the changeset comment = changeset.comments.create(:changeset => changeset, @@ -342,15 +342,15 @@ class ChangesetController < ApplicationController # Adds a subscriber to the changeset def subscribe # Check the arguments are sane - fail OSM::APIBadUserInput.new("No id was given") unless params[:id] + raise OSM::APIBadUserInput.new("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) - fail OSM::APIChangesetNotYetClosedError.new(changeset) if changeset.is_open? - fail OSM::APIChangesetAlreadySubscribedError.new(changeset) if changeset.subscribers.exists?(@user.id) + raise OSM::APIChangesetNotYetClosedError.new(changeset) if changeset.is_open? + raise OSM::APIChangesetAlreadySubscribedError.new(changeset) if changeset.subscribers.exists?(@user.id) # Add the subscriber changeset.subscribers << @user @@ -363,15 +363,15 @@ class ChangesetController < ApplicationController # Removes a subscriber from the changeset def unsubscribe # Check the arguments are sane - fail OSM::APIBadUserInput.new("No id was given") unless params[:id] + raise OSM::APIBadUserInput.new("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) - fail OSM::APIChangesetNotYetClosedError.new(changeset) if changeset.is_open? - fail OSM::APIChangesetNotSubscribedError.new(changeset) unless changeset.subscribers.exists?(@user.id) + raise OSM::APIChangesetNotYetClosedError.new(changeset) if changeset.is_open? + raise OSM::APIChangesetNotSubscribedError.new(changeset) unless changeset.subscribers.exists?(@user.id) # Remove the subscriber changeset.subscribers.delete(@user) @@ -384,7 +384,7 @@ class ChangesetController < ApplicationController # Sets visible flag on comment to false def hide_comment # Check the arguments are sane - fail OSM::APIBadUserInput.new("No id was given") unless params[:id] + raise OSM::APIBadUserInput.new("No id was given") unless params[:id] # Extract the arguments id = params[:id].to_i @@ -403,7 +403,7 @@ class ChangesetController < ApplicationController # Sets visible flag on comment to true def unhide_comment # Check the arguments are sane - fail OSM::APIBadUserInput.new("No id was given") unless params[:id] + raise OSM::APIBadUserInput.new("No id was given") unless params[:id] # Extract the arguments id = params[:id].to_i @@ -473,19 +473,19 @@ class ChangesetController < ApplicationController changesets else # shouldn't provide both name and UID - fail OSM::APIBadUserInput.new("provide either the user ID or display name, but not both") if user && name + raise OSM::APIBadUserInput.new("provide either the user ID or display name, but not both") if user && name # use either the name or the UID to find the user which we're selecting on. u = if name.nil? # user input checking, we don't have any UIDs < 1 - fail OSM::APIBadUserInput.new("invalid user ID") if user.to_i < 1 + raise OSM::APIBadUserInput.new("invalid user ID") if user.to_i < 1 u = User.find(user.to_i) else - u = User.find_by_display_name(name) + u = User.find_by(:display_name => name) end # make sure we found a user - fail OSM::APINotFoundError.new if u.nil? + raise OSM::APINotFoundError.new if u.nil? # should be able to get changesets of public users only, or # our own changesets regardless of public-ness. @@ -494,7 +494,7 @@ class ChangesetController < ApplicationController # changesets if they're non-public setup_user_auth - fail OSM::APINotFoundError if @user.nil? || @user.id != u.id + raise OSM::APINotFoundError if @user.nil? || @user.id != u.id end changesets.where(:user_id => u.id) @@ -512,7 +512,7 @@ class ChangesetController < ApplicationController # check that we actually have 2 elements in the array times = time.split(/,/) - fail OSM::APIBadUserInput.new("bad time range") if times.size != 2 + raise OSM::APIBadUserInput.new("bad time range") if times.size != 2 from, to = times.collect { |t| DateTime.parse(t) } return changesets.where("closed_at >= ? and created_at <= ?", from, to) @@ -535,10 +535,10 @@ class ChangesetController < ApplicationController # if parameter 'open' is nill then open and closed changesets are returned def conditions_open(changesets, open) if open.nil? - return changesets + changesets else - return changesets.where("closed_at >= ? and num_changes <= ?", - Time.now.getutc, Changeset::MAX_ELEMENTS) + changesets.where("closed_at >= ? and num_changes <= ?", + Time.now.getutc, Changeset::MAX_ELEMENTS) end end @@ -547,10 +547,10 @@ class ChangesetController < ApplicationController # ('closed at' time has passed or changes limit is hit) def conditions_closed(changesets, closed) if closed.nil? - return changesets + changesets else - return changesets.where("closed_at < ? or num_changes > ?", - Time.now.getutc, Changeset::MAX_ELEMENTS) + changesets.where("closed_at < ? or num_changes > ?", + Time.now.getutc, Changeset::MAX_ELEMENTS) end end @@ -559,12 +559,12 @@ class ChangesetController < ApplicationController # (either specified as array or comma-separated string) def conditions_ids(changesets, ids) if ids.nil? - return changesets + changesets elsif ids.empty? - fail OSM::APIBadUserInput.new("No changesets were given to search for") + raise OSM::APIBadUserInput.new("No changesets were given to search for") else ids = ids.split(",").collect(&:to_i) - return changesets.where(:id => ids) + changesets.where(:id => ids) end end @@ -582,7 +582,7 @@ class ChangesetController < ApplicationController if params[:limit].to_i > 0 && params[:limit].to_i <= 10000 params[:limit].to_i else - fail OSM::APIBadUserInput.new("Comments limit must be between 1 and 10000") + raise OSM::APIBadUserInput.new("Comments limit must be between 1 and 10000") end else 100