]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/api_controller.rb
A few more edge cases
[rails.git] / app / controllers / api_controller.rb
index 7bf8f0499c7339b41a6c908aadde98e978b02325..379bb7e8650c3577588e4954d8a731c721425b99 100644 (file)
@@ -2,7 +2,6 @@ class ApiController < ApplicationController
   skip_before_action :verify_authenticity_token
   before_action :check_api_readable, :except => [:capabilities]
   before_action :setup_user_auth, :only => [:permissions]
-  after_action :compress_output
   around_action :api_call_handle_error, :api_call_timeout
 
   # Get an XML response containing a list of tracepoints that have been uploaded
@@ -126,17 +125,13 @@ class ApiController < ApplicationController
       return
     end
 
-    @nodes = Node.bbox(bbox).where(:visible => true).includes(:node_tags).limit(MAX_NUMBER_OF_NODES + 1)
+    nodes = Node.bbox(bbox).where(:visible => true).includes(:node_tags).limit(MAX_NUMBER_OF_NODES + 1)
 
-    node_ids = @nodes.collect(&:id)
+    node_ids = nodes.collect(&:id)
     if node_ids.length > MAX_NUMBER_OF_NODES
       report_error("You requested too many nodes (limit is #{MAX_NUMBER_OF_NODES}). Either request a smaller area, or use planet.osm")
       return
     end
-    if node_ids.length == 0
-      render :text => "<osm version='#{API_VERSION}' generator='#{GENERATOR}'></osm>", :content_type => "text/xml"
-      return
-    end
 
     doc = OSM::API.new.get_xml_doc
 
@@ -164,14 +159,14 @@ class ApiController < ApplicationController
     nodes_to_fetch = (list_of_way_nodes.uniq - node_ids) - [0]
 
     if nodes_to_fetch.length > 0
-      @nodes += Node.includes(:node_tags).find(nodes_to_fetch)
+      nodes += Node.includes(:node_tags).find(nodes_to_fetch)
     end
 
     visible_nodes = {}
     changeset_cache = {}
     user_display_name_cache = {}
 
-    @nodes.each do |node|
+    nodes.each do |node|
       if node.visible?
         doc.root << node.to_xml_node(changeset_cache, user_display_name_cache)
         visible_nodes[node.id] = node