X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/8f4a9a4b870f7b15652eb125c675bf635c7b0484..1998ec88b82f29f7ea3c65f41895a1e76a1ded5a:/lib/osm.rb diff --git a/lib/osm.rb b/lib/osm.rb index 1a22af93a..d4c13ad7f 100644 --- a/lib/osm.rb +++ b/lib/osm.rb @@ -268,6 +268,70 @@ module OSM end end + ## + # raised when someone tries to redact a current version of + # an element - only historical versions can be redacted. + class APICannotRedactError < APIError + def status + :bad_request + end + + def to_s + "Cannot redact current version of element, only historical versions may be redacted." + end + end + + # Raised when the note provided is already closed + class APINoteAlreadyClosedError < APIError + def initialize(note) + @note = note + end + + attr_reader :note + + def status + :conflict + end + + def to_s + "The note #{@note.id} was closed at #{@note.closed_at}" + end + end + + # Raised when the note provided is already open + class APINoteAlreadyOpenError < APIError + def initialize(note) + @note = note + end + + attr_reader :note + + def status + :conflict + end + + def to_s + "The note #{@note.id} is already open" + end + end + + # raised when a two preferences have a duplicate key string. + class APIDuplicatePreferenceError < APIError + def initialize(key) + @key = key + end + + attr_reader :key + + def status + :bad_request + end + + def to_s + "Duplicate preferences with key #{@key}" + end + end + # Helper methods for going to/from mercator and lat/lng. class Mercator include Math @@ -447,6 +511,9 @@ module OSM root = XML::Node.new 'osm' root['version'] = API_VERSION.to_s root['generator'] = GENERATOR + root['copyright'] = COPYRIGHT_OWNER + root['attribution'] = ATTRIBUTION_URL + root['license'] = LICENSE_URL doc.root = root return doc end @@ -464,7 +531,7 @@ module OSM country = "GB" if country == "UK" end end - + return country.upcase end