Refactoring
authormmd-osm <mmd.osm@gmail.com>
Thu, 27 Jun 2019 20:23:38 +0000 (22:23 +0200)
committermmd-osm <mmd.osm@gmail.com>
Thu, 27 Jun 2019 20:28:40 +0000 (22:28 +0200)
app/controllers/api/map_controller.rb
app/controllers/api/nodes_controller.rb
app/controllers/api/old_controller.rb
app/controllers/api/relations_controller.rb
app/controllers/api/ways_controller.rb

index d151d3d..4790e2f 100644 (file)
@@ -19,15 +19,15 @@ module Api
       # check boundary is sane and area within defined
       # see /config/application.yml
       begin
-        bbox = BoundingBox.from_bbox_params(params)
-        bbox.check_boundaries
-        bbox.check_size
+        @bounds = BoundingBox.from_bbox_params(params)
+        @bounds.check_boundaries
+        @bounds.check_size
       rescue StandardError => err
         report_error(err.message)
         return
       end
 
-      nodes = Node.bbox(bbox).where(:visible => true).includes(:node_tags).limit(Settings.max_number_of_nodes + 1)
+      nodes = Node.bbox(@bounds).where(:visible => true).includes(:node_tags).limit(Settings.max_number_of_nodes + 1)
 
       node_ids = nodes.collect(&:id)
       if node_ids.length > Settings.max_number_of_nodes
@@ -35,9 +35,6 @@ module Api
         return
       end
 
-      # add bounds
-      @bounds = bbox
-
       # get ways
       # find which ways are needed
       ways = []
@@ -77,22 +74,19 @@ module Api
         end
       end
 
-      relations = Relation.nodes(visible_nodes.keys).visible +
-                  Relation.ways(way_ids).visible
+      @relations = Relation.nodes(visible_nodes.keys).visible +
+                   Relation.ways(way_ids).visible
 
       # we do not normally return the "other" partners referenced by an relation,
       # e.g. if we return a way A that is referenced by relation X, and there's
       # another way B also referenced, that is not returned. But we do make
       # an exception for cases where an relation references another *relation*;
       # in that case we return that as well (but we don't go recursive here)
-      relations += Relation.relations(relations.collect(&:id)).visible
+      @relations += Relation.relations(@relations.collect(&:id)).visible
 
       # this "uniq" may be slightly inefficient; it may be better to first collect and output
       # all node-related relations, then find the *not yet covered* way-related ones etc.
-      @relations = []
-      relations.uniq.each do |relation|
-        @relations << relation
-      end
+      @relations.uniq!
 
       response.headers["Content-Disposition"] = "attachment; filename=\"map.osm\""
       # Render the result
index 891528a..dafb19e 100644 (file)
@@ -26,13 +26,11 @@ module Api
 
     # Dump the details on a node given in params[:id]
     def show
-      node = Node.find(params[:id])
-
-      response.last_modified = node.timestamp
+      @node = Node.find(params[:id])
 
-      if node.visible
-        @node = node
+      response.last_modified = @node.timestamp
 
+      if @node.visible
         # Render the result
         respond_to do |format|
           format.xml
index bf3fcdb..49fdcf1 100644 (file)
@@ -22,13 +22,12 @@ module Api
       # to do that ourselves.
       raise OSM::APINotFoundError if @elements.empty?
 
-      visible_elements = if show_redactions?
-                           @elements
-                         else
-                           @elements.unredacted
-                         end
-
-      @elems = visible_elements
+      # determine visible elements
+      @elems = if show_redactions?
+                 @elements
+               else
+                 @elements.unredacted
+               end
 
       # Render the result
       respond_to do |format|
index 41f4e32..2f2cb85 100644 (file)
@@ -22,11 +22,9 @@ module Api
     end
 
     def show
-      relation = Relation.find(params[:id])
-      response.last_modified = relation.timestamp
-      if relation.visible
-        @relation = relation
-
+      @relation = Relation.find(params[:id])
+      response.last_modified = @relation.timestamp
+      if @relation.visible
         # Render the result
         respond_to do |format|
           format.xml
index 102be29..0871384 100644 (file)
@@ -22,13 +22,11 @@ module Api
     end
 
     def show
-      way = Way.find(params[:id])
-
-      response.last_modified = way.timestamp
+      @way = Way.find(params[:id])
 
-      if way.visible
-        @way = way
+      response.last_modified = @way.timestamp
 
+      if @way.visible
         # Render the result
         respond_to do |format|
           format.xml
@@ -64,22 +62,20 @@ module Api
     end
 
     def full
-      way = Way.includes(:nodes => :node_tags).find(params[:id])
+      @way = Way.includes(:nodes => :node_tags).find(params[:id])
 
-      if way.visible
+      if @way.visible
         visible_nodes = {}
 
         @nodes = []
 
-        way.nodes.uniq.each do |node|
+        @way.nodes.uniq.each do |node|
           if node.visible
             @nodes << node
             visible_nodes[node.id] = node
           end
         end
 
-        @way = way
-
         # Render the result
         respond_to do |format|
           format.xml