]> git.openstreetmap.org Git - rails.git/blob - app/controllers/old_relation_controller.rb
Merge 12304:14009 from trunk.
[rails.git] / app / controllers / old_relation_controller.rb
1 class OldRelationController < ApplicationController
2   require 'xml/libxml'
3
4   session :off
5   before_filter :check_read_availability
6   after_filter :compress_output
7
8   def history
9     begin
10       relation = Relation.find(params[:id])
11       doc = OSM::API.new.get_xml_doc
12
13       relation.old_relations.each do |old_relation|
14         doc.root << old_relation.to_xml_node
15       end
16
17       render :text => doc.to_s, :content_type => "text/xml"
18     rescue ActiveRecord::RecordNotFound
19       render :nothing => true, :status => :not_found
20     rescue
21       render :nothing => true, :status => :internal_server_error
22     end
23   end
24   
25   def version
26     begin
27       old_relation = OldRelation.find(:first, :conditions => {:id => params[:id], :version => params[:version]} )
28       
29       response.headers['Last-Modified'] = old_relation.timestamp.rfc822
30
31       doc = OSM::API.new.get_xml_doc
32       doc.root << old_relation.to_xml_node
33
34       render :text => doc.to_s, :content_type => "text/xml"
35     rescue ActiveRecord::RecordNotFound
36       render :nothing => true, :status => :not_found
37     rescue
38       render :nothing => true, :status => :internetal_service_error
39     end
40   end
41 end