X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/783b5e3729228908d7404ae7404af1023501a906..fea1b5b88de731dd35d1f79d36ec40a8e8a1f6af:/app/controllers/api/traces_controller.rb diff --git a/app/controllers/api/traces_controller.rb b/app/controllers/api/traces_controller.rb index 8979704a7..9894441ff 100644 --- a/app/controllers/api/traces_controller.rb +++ b/app/controllers/api/traces_controller.rb @@ -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,7 +10,7 @@ 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 @@ -40,7 +38,7 @@ module Api if trace.user == current_user trace.visible = false trace.save! - TraceDestroyerJob.perform_later(trace) if Settings.trace_use_job_queue + TraceDestroyerJob.perform_later(trace) head :ok else @@ -81,7 +79,7 @@ module Api trace = do_create(params[:file], tags, description, visibility) if trace.id - TraceImporterJob.perform_later(trace) if Settings.trace_use_job_queue + TraceImporterJob.perform_later(trace) render :plain => trace.id.to_s elsif trace.valid? head :internal_server_error @@ -103,7 +101,7 @@ module Api filename = "/tmp/#{rand}" # ...and save the uploaded file to that location - File.open(filename, "wb") { |f| f.write(file.read) } + File.binwrite(filename, file.read) # Create the trace object, falsely marked as already # inserted to stop the import daemon trying to load it @@ -158,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