From: Tom Hughes Date: Tue, 26 May 2009 23:47:45 +0000 (+0000) Subject: Create a proper exception class for invalid bounding box exceptions. X-Git-Tag: live~7336 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/40e920bd52619f549ff829296865f87f89f2fd2a?hp=68ea927f5b40e205d90b66f8013e0d268dff7021 Create a proper exception class for invalid bounding box exceptions. --- diff --git a/lib/map_boundary.rb b/lib/map_boundary.rb index 153d65780..6ac7e9f3d 100644 --- a/lib/map_boundary.rb +++ b/lib/map_boundary.rb @@ -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 diff --git a/lib/osm.rb b/lib/osm.rb index 4c99de2f1..5be2da56a 100644 --- a/lib/osm.rb +++ b/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