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
# File lib/richard.rb, line 60 def print_result(result) json = JSON.parse(result) users = QueuedUserDeserializer.from_json(json) puts QueuedUserFormatter.table_format(users) puts format_estimated_wait(json) puts format_flash(json['flash']) unless json['flash'].empty? end
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