|
|
class HeartbeatController < ApplicationController
|
|
|
before_action :admin_authorization, :only => ['index']
|
|
|
|
|
|
def edit
|
|
|
#@user = User.find_by_login(params[:id])
|
|
|
#unless @user
|
|
|
# render text: "LOGIN_NOT_FOUND"
|
|
|
# return
|
|
|
#end
|
|
|
|
|
|
#hb = HeartBeat.where(user_id: @user.id, ip_address: request.remote_ip).first
|
|
|
#puts "status = #{params[:status]}"
|
|
|
#if hb
|
|
|
# if params[:status]
|
|
|
# hb.status = params[:status]
|
|
|
# hb.save
|
|
|
# end
|
|
|
# hb.touch
|
|
|
#else
|
|
|
# HeartBeat.creae(user_id: @user.id, ip_address: request.remote_ip)
|
|
|
#end
|
|
|
#HeartBeat.create(user_id: @user.id, ip_address: request.remote_ip, status: params[:status])
|
|
|
|
|
|
res = GraderConfiguration['right.heartbeat_response']
|
|
|
res.strip! if res
|
|
|
full = GraderConfiguration['right.heartbeat_response_full']
|
|
|
full.strip! if full
|
|
|
|
|
|
if full and full != ''
|
|
|
l = Login.where(ip_address: request.remote_ip).last
|
|
|
@user = l.user
|
|
|
if @user.solve_all_available_problems?
|
|
|
render text: (full || 'OK')
|
|
|
else
|
|
|
render text: (res || 'OK')
|
|
|
end
|
|
|
else
|
|
|
render text: (GraderConfiguration['right.heartbeat_response'] || 'OK')
|
|
|
end
|
|
|
end
|
|
|
|
|
|
def index
|
|
|
@hb = HeartBeat.where("updated_at >= ?",Time.zone.now-2.hours).includes(:user).order(:user_id).all
|
|
|
@num = HeartBeat.where("updated_at >= ?",Time.zone.now-5.minutes).count(:user_id,distinct: true)
|
|
|
end
|
|
|
end
|
|
|
|