]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/api/traces_controller.rb
Subscribe users when they interact with notes
[rails.git] / app / controllers / api / traces_controller.rb
index 07b6208af40deef2018a8beb14d33a558b5de2ef..76dfb3a2dc1bd4b6d57728b17b3f074894ef88cd 100644 (file)
@@ -1,17 +1,13 @@
 module Api
   class TracesController < ApiController
-    before_action :check_database_readable, :except => [:show, :data]
-    before_action :check_database_writable, :only => [:create, :update, :destroy]
-    before_action :authorize_web
+    before_action :check_api_writable, :only => [:create, :update, :destroy]
     before_action :set_locale
     before_action :authorize
 
     authorize_resource
 
-    before_action :check_api_readable, :only => [:show, :data]
-    before_action :check_api_writable, :only => [:create, :update, :destroy]
     before_action :offline_error, :only => [:create, :destroy, :data]
-    around_action :api_call_handle_error
+    skip_around_action :api_call_timeout, :only => :create
 
     def show
       @trace = Trace.visible.find(params[:id])
@@ -36,7 +32,7 @@ module Api
         trace = do_create(params[:file], tags, description, visibility)
 
         if trace.id
-          TraceImporterJob.perform_later(trace)
+          trace.schedule_import
           render :plain => trace.id.to_s
         elsif trace.valid?
           head :internal_server_error
@@ -67,7 +63,7 @@ module Api
       if trace.user == current_user
         trace.visible = false
         trace.save!
-        TraceDestroyerJob.perform_later(trace)
+        trace.schedule_destruction
 
         head :ok
       else
@@ -116,7 +112,7 @@ module Api
       trace.save!
 
       # Finally save the user's preferred privacy level
-      if pref = current_user.preferences.where(:k => "gps.trace.visibility").first
+      if pref = current_user.preferences.find_by(:k => "gps.trace.visibility")
         pref.v = visibility
         pref.save
       else