]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/api/traces_controller.rb
Localisation updates from https://translatewiki.net.
[rails.git] / app / controllers / api / traces_controller.rb
index 88b6edc67903782a0e7b90d4a5d0aa269b8a30b2..8979704a71802167af2b374ea8f173259bd36215 100644 (file)
@@ -5,28 +5,23 @@ module Api
     before_action :authorize_web
     before_action :set_locale
     before_action :authorize
     before_action :authorize_web
     before_action :set_locale
     before_action :authorize
-    before_action :api_deny_access_handler
 
     authorize_resource
 
 
     authorize_resource
 
-    before_action :check_database_readable, :except => [:api_read, :api_data]
-    before_action :check_database_writable, :only => [:api_create, :api_update, :api_delete]
-    before_action :check_api_readable, :only => [:api_read, :api_data]
-    before_action :check_api_writable, :only => [:api_create, :api_update, :api_delete]
-    before_action :offline_redirect, :only => [:api_create, :api_delete, :api_data]
+    before_action :check_database_readable, :except => [:show, :data]
+    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]
     around_action :api_call_handle_error
 
     around_action :api_call_handle_error
 
-    def api_read
-      trace = Trace.visible.find(params[:id])
+    def show
+      @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
 
     end
 
-    def api_update
+    def update
       trace = Trace.visible.find(params[:id])
 
       if trace.user == current_user
       trace = Trace.visible.find(params[:id])
 
       if trace.user == current_user
@@ -39,12 +34,13 @@ module Api
       end
     end
 
       end
     end
 
-    def api_delete
+    def destroy
       trace = Trace.visible.find(params[:id])
 
       if trace.user == current_user
         trace.visible = false
         trace.save!
       trace = Trace.visible.find(params[:id])
 
       if trace.user == current_user
         trace.visible = false
         trace.save!
+        TraceDestroyerJob.perform_later(trace) if Settings.trace_use_job_queue
 
         head :ok
       else
 
         head :ok
       else
@@ -52,7 +48,7 @@ module Api
       end
     end
 
       end
     end
 
-    def api_data
+    def data
       trace = Trace.visible.find(params[:id])
 
       if trace.public? || trace.user == current_user
       trace = Trace.visible.find(params[:id])
 
       if trace.public? || trace.user == current_user
@@ -68,7 +64,7 @@ module Api
       end
     end
 
       end
     end
 
-    def api_create
+    def create
       tags = params[:tags] || ""
       description = params[:description] || ""
       visibility = params[:visibility]
       tags = params[:tags] || ""
       description = params[:description] || ""
       visibility = params[:visibility]
@@ -85,6 +81,7 @@ module Api
         trace = do_create(params[:file], tags, description, visibility)
 
         if trace.id
         trace = do_create(params[:file], tags, description, visibility)
 
         if trace.id
+          TraceImporterJob.perform_later(trace) if Settings.trace_use_job_queue
           render :plain => trace.id.to_s
         elsif trace.valid?
           head :internal_server_error
           render :plain => trace.id.to_s
         elsif trace.valid?
           head :internal_server_error