Project

General

Profile

Download (1 KB) Statistics
| Branch: | Tag: | Revision:
class HomeController < ApplicationController
skip_before_filter :require_login, :only => [:status]
skip_before_filter :authorize, :set_taxonomy, :only => [:status]
skip_before_filter :session_expiry, :update_activity_time, :only => :status

def settings
end

def status
respond_to do |format|
format.json do
# make fake db call, measure duration and report errors
result = exception_watch { User.first }
render :json => result, :status => result[:status]
end
format.all { invalid_request }
end
end

private
# check for exception - set the result code and duration time
def exception_watch &block
start = Time.now
result = {}
yield
result[:result] = 'ok'
result[:status] = 200
result[:version] = SETTINGS[:version]
result[:db_duration_ms] = ((Time.now - start) * 1000).round.to_s
rescue Exception => e
result[:result] = 'fail'
result[:status] = 500
result[:message] = e.message
ensure
return result
end
end
(16-16/41)