response.headers['Error'] = message
render :text => message, :status => status
end
+
+ def set_locale
+ I18n.locale = request.compatible_language_from(I18n.available_locales)
+ end
def api_call_handle_error
begin
ex.record.errors.each { |attr,msg| message << "#{attr}: #{msg} (#{ex.record[attr].inspect})" }
report_error message, :bad_request
rescue OSM::APIError => ex
- render_opts = ex.render_opts
- report_error render_opts[:text], render_opts[:status]
+ report_error ex.message, ex.status
+ rescue Exception => ex
+ report_error "#{ex.class}: #{ex.message}", :internal_server_error
end
end
raise OSM::APIBadMethodError.new(method) unless ok
end
-private
+ 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
def get_auth_data
if request.env.has_key? 'X-HTTP_AUTHORIZATION' # where mod_rewrite might have put it