Create a proper exception class for invalid bounding box exceptions.
This commit is contained in:
parent
68ea927f5b
commit
40e920bd52
2 changed files with 20 additions and 4 deletions
|
@ -12,20 +12,20 @@ module MapBoundary
|
|||
def check_boundaries(min_lon, min_lat, max_lon, max_lat)
|
||||
# check the bbox is sane
|
||||
unless min_lon <= max_lon
|
||||
raise("The minimum longitude must be less than the maximum longitude, but it wasn't")
|
||||
raise OSM::APIBadBoundingBox.new("The minimum longitude must be less than the maximum longitude, but it wasn't")
|
||||
end
|
||||
unless min_lat <= max_lat
|
||||
raise("The minimum latitude must be less than the maximum latitude, but it wasn't")
|
||||
raise OSM::APIBadBoundingBox.new("The minimum latitude must be less than the maximum latitude, but it wasn't")
|
||||
end
|
||||
unless min_lon >= -180 && min_lat >= -90 && max_lon <= 180 && max_lat <= 90
|
||||
# Due to sanitize_boundaries, it is highly unlikely we'll actually get here
|
||||
raise("The latitudes must be between -90 and 90, and longitudes between -180 and 180")
|
||||
raise OSM::APIBadBoundingBox.new("The latitudes must be between -90 and 90, and longitudes between -180 and 180")
|
||||
end
|
||||
|
||||
# check the bbox isn't too large
|
||||
requested_area = (max_lat-min_lat)*(max_lon-min_lon)
|
||||
if requested_area > APP_CONFIG['max_request_area']
|
||||
raise("The maximum bbox size is " + APP_CONFIG['max_request_area'].to_s +
|
||||
raise OSM::APIBadBoundingBox.new("The maximum bbox size is " + APP_CONFIG['max_request_area'].to_s +
|
||||
", and your request was too large. Either request a smaller area, or use planet.osm")
|
||||
end
|
||||
end
|
||||
|
|
16
lib/osm.rb
16
lib/osm.rb
|
@ -218,6 +218,22 @@ module OSM
|
|||
end
|
||||
end
|
||||
|
||||
##
|
||||
# raised when bounding box is invalid
|
||||
class APIBadBoundingBox < APIError
|
||||
def initialize(message)
|
||||
@message = message
|
||||
end
|
||||
|
||||
def status
|
||||
:bad_request
|
||||
end
|
||||
|
||||
def to_s
|
||||
@message
|
||||
end
|
||||
end
|
||||
|
||||
##
|
||||
# raised when an API call is made using a method not supported on that URI
|
||||
class APIBadMethodError < APIError
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue