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 0aef6123d90eb6e0592c7cfbebb63a92b801b17c..c23df70dfad935a65d2ea72362f3618ad07fd903 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 7055c031cbf000b099b6955bcb778cc6e7312ece..16f33013ee1c01e251f34a19d177118c338f9e97 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 ffb06bf5e9010bea85398ad983e992d51752f5e0..0cb3b2747e2e76e781a1e217d1b474c13d2a2c14 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 dae0957b30b0cceb868b475b0d57a48be7f6f727..f6f2823098d6b51c369852f5e560fb3bc5a2e426 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