class Richard::Server

Public Class Methods

new(base_url, api_key) click to toggle source
# File lib/richard.rb, line 11
def initialize(base_url, api_key)
  @base_url = base_url
  @api_key = api_key
end

Public Instance Methods

force_release(user_id) click to toggle source
# File lib/richard.rb, line 26
def force_release(user_id)
  response = send_command("/queue/force_release/#{user_id}.json")
  print_result(response)
end
grab() click to toggle source
# File lib/richard.rb, line 16
def grab
  response = send_command("/queue/grab.json")
  print_result(response)
end
is_it_my_turn() click to toggle source
# File lib/richard.rb, line 35
def is_it_my_turn
  response = JSON.parse(RestClient.get(@base_url + "/queue/status?format=json&api_key=#{@api_key}"))

  if is_my_turn?(response)
    puts 'yes'
    exit 0
  else
    puts 'no'
    exit -1
  end
end
list() click to toggle source
# File lib/richard.rb, line 31
def list
  print_result(RestClient.get(@base_url + "/?format=json&api_key=#{@api_key}"))
end
release() click to toggle source
# File lib/richard.rb, line 21
def release
  response = send_command("/queue/release.json")
  print_result(response)
end

Private Instance Methods

format_estimated_wait(response) click to toggle source
# File lib/richard.rb, line 70
def format_estimated_wait(response)
  seconds = response['estimated_wait_time']
  wait_time = Time.at(seconds).utc.strftime("%Hh %Mm %Ss")
  "Estimated Wait: #{wait_time}"
end
format_flash(flash) click to toggle source
# File lib/richard.rb, line 76
def format_flash(flash)
  if flash['error']
    "\nError: " + flash['error']
  end
end
is_my_turn?(response) click to toggle source
# File lib/richard.rb, line 49
def is_my_turn?(response)
  queue_data = response['content'].fetch('queue_transaction') { {} }
  queue_data['status'] == 'running'
end
print_result(result) click to toggle source
send_command(url) click to toggle source
# File lib/richard.rb, line 54
def send_command(url)
  RestClient.post(@base_url + url, api_key: @api_key)
rescue RestClient::UnprocessableEntity => e
  e.response
end