]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/application.rb
Added locking around update and delete methods on main API objects. This should remov...
[rails.git] / app / controllers / application.rb
index 082c5cf65a28aceac9863bede1e0732e8f976b51..6c6ffacb25396f80113b60e68a6c38a3477292a7 100644 (file)
@@ -115,6 +115,8 @@ class ApplicationController < ActionController::Base
     rescue OSM::APIError => ex
       render_opts = ex.render_opts
       report_error render_opts[:text], render_opts[:status]
+    rescue Exception => ex
+      report_error "#{ex.class}: #{ex.message}", :internal_server_error
     end
   end
 
@@ -126,6 +128,12 @@ class ApplicationController < ActionController::Base
     raise OSM::APIBadMethodError.new(method) unless ok
   end
 
+  def api_call_timeout
+    Timeout::timeout(APP_CONFIG['api_timeout'], OSM::APITimeoutError) do
+      yield
+    end
+  end
+
 private 
 
   # extract authorisation credentials from headers, returns user = nil if none