]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/api/map_controller.rb
Merge remote-tracking branch 'upstream/pull/4226'
[rails.git] / app / controllers / api / map_controller.rb
index b0998f7ebaa9aa6ae49f8aa125f0583f5353049e..5a05f6de2b527e6c236b665007ab8a5cd309b534 100644 (file)
@@ -1,10 +1,13 @@
 module Api
   class MapController < ApiController
+    before_action :check_api_readable
+
     authorize_resource :class => false
 
-    before_action :check_api_readable
     around_action :api_call_handle_error, :api_call_timeout
 
+    before_action :set_request_formats
+
     # This is probably the most common call of all. It is used for getting the
     # OSM data for a specified bounding box, usually for editing. First the
     # bounding box (bbox) is checked to make sure that it is sane. All nodes
@@ -19,6 +22,8 @@ module Api
       # check boundary is sane and area within defined
       # see /config/application.yml
       begin
+        raise OSM::APIBadUserInput, "The parameter bbox is required" unless params[:bbox]
+
         @bounds = BoundingBox.from_bbox_params(params)
         @bounds.check_boundaries
         @bounds.check_size
@@ -90,7 +95,10 @@ module Api
 
       response.headers["Content-Disposition"] = "attachment; filename=\"map.osm\""
       # Render the result
-      render :formats => [:xml]
+      respond_to do |format|
+        format.xml
+        format.json
+      end
     end
   end
 end