]> git.openstreetmap.org Git - rails.git/commitdiff
Allow uncompressed GPX traces to be fetched from the API
authorTom Hughes <tom@compton.nu>
Tue, 24 Aug 2010 20:21:02 +0000 (21:21 +0100)
committerTom Hughes <tom@compton.nu>
Tue, 24 Aug 2010 20:21:02 +0000 (21:21 +0100)
app/controllers/trace_controller.rb
config/routes.rb

index 60b6502e20b7b1a56fd198971f671ed692f8553b..1a75ac4cc455786b799ef7525245d09d154ad510 100644 (file)
@@ -292,7 +292,11 @@ class TraceController < ApplicationController
     trace = Trace.find(params[:id])
 
     if trace.public? or trace.user == @user
-      send_file(trace.trace_name, :filename => "#{trace.id}#{trace.extension_name}", :type => trace.mime_type, :disposition => 'attachment')
+      if request.format == Mime::XML
+        send_file(trace.xml_file, :filename => "#{trace.id}.xml", :type => Mime::XML.to_s, :disposition => 'attachment')
+      else
+        send_file(trace.trace_name, :filename => "#{trace.id}#{trace.extension_name}", :type => trace.mime_type, :disposition => 'attachment')
+      end
     else
       render :nothing => true, :status => :forbidden
     end
index 52ec42a07813cf3a8db68d8093748cc6e51d5a69..e2018784dd4162b8d5780001070ce66167106a79 100644 (file)
@@ -64,6 +64,7 @@ ActionController::Routing::Routes.draw do |map|
   map.connect "api/#{API_VERSION}/gpx/create", :controller => 'trace', :action => 'api_create'
   map.connect "api/#{API_VERSION}/gpx/:id/details", :controller => 'trace', :action => 'api_details'
   map.connect "api/#{API_VERSION}/gpx/:id/data", :controller => 'trace', :action => 'api_data'
+  map.connect "api/#{API_VERSION}/gpx/:id/data.:format", :controller => 'trace', :action => 'api_data'
   
   # AMF (ActionScript) API