response.headers['Error'] = message
render :text => message, :status => status
end
+
+ def set_locale
+ if @user
+ if !@user.languages.empty?
+ request.user_preferred_languages = @user.languages
+ elsif !request.user_preferred_languages.empty?
+ @user.languages = request.user_preferred_languages
+ @user.save
+ end
+ end
+
+ 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
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