]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/api/traces_controller.rb
Use a builder to render changeset downloads
[rails.git] / app / controllers / api / traces_controller.rb
index 86f1370f64d8e1d7198c3bb64e17ba7a6c13f24e..6c77f9dc4bae539cb581a60402e372f49dc80d7d 100644 (file)
@@ -1,7 +1,5 @@
 module Api
   class TracesController < ApiController
-    layout "site", :except => :georss
-
     before_action :authorize_web
     before_action :set_locale
     before_action :authorize
@@ -12,17 +10,13 @@ module Api
     before_action :check_database_writable, :only => [:create, :update, :destroy]
     before_action :check_api_readable, :only => [:show, :data]
     before_action :check_api_writable, :only => [:create, :update, :destroy]
-    before_action :offline_redirect, :only => [:create, :destroy, :data]
+    before_action :offline_error, :only => [:create, :destroy, :data]
     around_action :api_call_handle_error
 
     def show
-      trace = Trace.visible.find(params[:id])
+      @trace = Trace.visible.find(params[:id])
 
-      if trace.public? || trace.user == current_user
-        render :xml => trace.to_xml.to_s
-      else
-        head :forbidden
-      end
+      head :forbidden unless @trace.public? || @trace.user == current_user
     end
 
     def update
@@ -162,8 +156,8 @@ module Api
       trace
     end
 
-    def offline_redirect
-      redirect_to :action => :offline if Settings.status == "gpx_offline"
+    def offline_error
+      report_error "GPX files offline for maintenance", :service_unavailable if Settings.status == "gpx_offline"
     end
   end
 end