Removed lookup of current element in calls to history
authorMatt Amos <zerebubuth@gmail.com>
Wed, 4 Apr 2012 18:13:07 +0000 (19:13 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 5 Apr 2012 12:53:53 +0000 (13:53 +0100)
app/controllers/old_controller.rb
app/controllers/old_node_controller.rb
app/controllers/old_relation_controller.rb
app/controllers/old_way_controller.rb

index 0aef612..c23df70 100644 (file)
@@ -14,9 +14,14 @@ class OldController < ApplicationController
   after_filter :compress_output
   around_filter :api_call_handle_error, :api_call_timeout
   before_filter :lookup_old_element, :except => [ :history ]
-  before_filter :lookup_old_elements_via_current, :only => [ :history ]
+  before_filter :lookup_old_element_versions, :only => [ :history ]
 
   def history
+    # the .where() method used in the lookup_old_element_versions
+    # call won't throw an error if no records are found, so we have 
+    # to do that ourselves.
+    raise OSM::APINotFoundError.new if @elements.empty?
+
     doc = OSM::API.new.get_xml_doc
     
     visible_elements = if show_redactions?
index 7055c03..16f3301 100644 (file)
@@ -6,8 +6,7 @@ class OldNodeController < OldController
     @old_element = OldNode.find([params[:id], params[:version]])
   end
 
-  def lookup_old_elements_via_current
-    node = Node.find(params[:id])
-    @elements = node.old_nodes
+  def lookup_old_element_versions
+    @elements = OldNode.where(:node_id => params[:id]).order(:version)
   end
 end
index ffb06bf..0cb3b27 100644 (file)
@@ -6,8 +6,7 @@ class OldRelationController < OldController
     @old_element = OldRelation.find([params[:id], params[:version]])
   end
 
-  def lookup_old_elements_via_current
-    relation = Relation.find(params[:id])
-    @elements = relation.old_relations
+  def lookup_old_element_versions
+    @elements = OldRelation.where(:relation_id => params[:id]).order(:version)
   end
 end
index dae0957..f6f2823 100644 (file)
@@ -6,8 +6,7 @@ class OldWayController < OldController
     @old_element = OldWay.find([params[:id], params[:version]])
   end
 
-  def lookup_old_elements_via_current
-    way = Way.find(params[:id])
-    @elements = way.old_ways
+  def lookup_old_element_versions
+    @elements = OldWay.where(:way_id => params[:id]).order(:version)
   end
 end