# 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
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
# 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
# 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,
# 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
# 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)
# 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
# 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
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.
# 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)
# 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)
# 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
# ('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
# (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
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