64 lines
2.4 KiB
Ruby
64 lines
2.4 KiB
Ruby
class ApiScoringController < ApiController
|
|
|
|
respond_to :json
|
|
before_filter :api_signed_in_user
|
|
|
|
def work # clientid; returns another clientid
|
|
clientid = params[:clientid]
|
|
if clientid.nil? then render :json => {message: 'clientid not specified'}, :status => 400; return end
|
|
|
|
conn = Connection.where(client_id: clientid, user_id: current_user.id).first
|
|
if conn.nil? then render :json => {message: 'session not found'}, :status => 404; return end
|
|
# if !current_user.id.eql?(conn.user.id) then render :json => {message: 'session not owned by user'}, :status => 403; return end
|
|
|
|
#puts "ApiScoringController#work(#{clientid}) => locidispid #{c.locidispid}"
|
|
result_client_id = JamRuby::GetWork.get_work(conn)
|
|
#result_client_id = clientid+'peer'
|
|
|
|
render :json => {:clientid => result_client_id}, :status => 200
|
|
end
|
|
|
|
def worklist # clientid; returns a list of clientid
|
|
clientid = params[:clientid]
|
|
if clientid.nil? then render :json => {message: 'clientid not specified'}, :status => 400; return end
|
|
|
|
conn = Connection.where(client_id: clientid, user_id: current_user.id).first
|
|
if conn.nil? then render :json => {message: 'session not found'}, :status => 404; return end
|
|
|
|
if conn.locidispid.nil? then render :json => {message: 'no locidispid for connection'}, :status => 404; return end
|
|
|
|
# if !current_user.id.eql?(conn.user.id) then render :json => {message: 'session not owned by user'}, :status => 403; return end
|
|
|
|
result_client_ids = JamRuby::GetWork.get_work_list(conn, APP_CONFIG.getwork_result_size, APP_CONFIG.staleness_hours)
|
|
#result_client_ids = [clientid+'peer1', clientid+'peer2']
|
|
|
|
render :json => {:clientids => result_client_ids}, :status => 200
|
|
end
|
|
|
|
def record # aclientid, aAddr, bclientid, bAddr, score returns nothing
|
|
|
|
aclientid = params[:aclientid]
|
|
aip_address = params[:aAddr]
|
|
bclientid = params[:bclientid]
|
|
bip_address = params[:bAddr]
|
|
score = params[:score]
|
|
|
|
begin
|
|
udpReachable = params[:sdetail][:udpReachable]
|
|
rescue
|
|
udpReachable = nil
|
|
end
|
|
|
|
score_data = params.to_s
|
|
|
|
result = Score.record(current_user, aclientid, aip_address, bclientid, bip_address, score, score_data, udpReachable)
|
|
|
|
if result[:error]
|
|
render :json => {message: result[:message]}, :status => 422
|
|
else
|
|
render :json => {message: result[:message]}, :status => 200
|
|
end
|
|
end
|
|
|
|
end
|