Add a capabilities API call. Fixes #410.
authorTom Hughes <tom@compton.nu>
Tue, 21 Aug 2007 23:27:42 +0000 (23:27 +0000)
committerTom Hughes <tom@compton.nu>
Tue, 21 Aug 2007 23:27:42 +0000 (23:27 +0000)
app/controllers/api_controller.rb
config/routes.rb

index 39706edf0b3b4e2228aa5c08735eaa4f748b5111..7e8017f4e3736dabf1471d6d1f6730f045506ad5 100644 (file)
@@ -244,6 +244,22 @@ class ApiController < ApplicationController
       
       exit!
     end
+  end
+
+  def capabilities
+    doc = OSM::API.new.get_xml_doc
 
+    api = XML::Node.new 'api'
+    version = XML::Node.new 'version'
+    version['minimum'] = '0.4';
+    version['maximum'] = '0.4';
+    api << version
+    area = XML::Node.new 'area'
+    area['maximum'] = MAX_REQUEST_AREA.to_s;
+    api << area
+    
+    doc.root << api
+
+    render :text => doc.to_s, :content_type => "text/xml"
   end
 end
index 482c5c6cb0c54ab663ee2b2a8d41ff070a8c1b5e..97d45006808f6cd38bb4d16bd2e8f2d4fe6dedf2 100644 (file)
@@ -25,6 +25,8 @@ ActionController::Routing::Routes.draw do |map|
   map.connect "api/#{API_VERSION}/way/:id", :controller => 'way', :action => 'delete', :id => /\d+/, :conditions => { :method => :delete }
   map.connect "api/#{API_VERSION}/ways", :controller => 'way', :action => 'ways', :id => nil
 
+  map.connect "api/#{API_VERSION}/capabilities", :controller => 'api', :action => 'capabilities'
+
   map.connect "api/#{API_VERSION}/map", :controller => 'api', :action => 'map'
   
   map.connect "api/#{API_VERSION}/trackpoints", :controller => 'api', :action => 'trackpoints'