class RandomOrg::ApiClient
The API client responsible for making all the calls.
@api private
Public Class Methods
build_request(which_request, args = nil)
click to toggle source
Constructs a request to the API @param [Symbol] which_request request to build @param [Hash,nil] args arguments @return [Hash] prebuilt request
# File lib/random_org/api_client.rb, line 14 def self.build_request(which_request, args = nil) req = base_request req[:params] = args.merge('apiKey' => RandomOrg.configuration.api_key) req[:method] = setup_request_method(which_request) req end
perform_request(req)
click to toggle source
Performs a request to the API @param [Hash] req prebuilt request to perform @return [Hash] parsed response
# File lib/random_org/api_client.rb, line 26 def self.perform_request(req) response = RestClient.post(@endpoint_uri, req.to_json) case response.code when 200 return JSON.parse(response.body) when 400 wrong_api_key_error when 500 api_server_error end nil end
Private Class Methods
api_server_error()
click to toggle source
# File lib/random_org/api_client.rb, line 61 def self.api_server_error raise ApiServerError, 'Something went wrong from the random.org API. ' \ 'Try again or check their service for information.' end
base_request()
click to toggle source
# File lib/random_org/api_client.rb, line 41 def self.base_request { jsonrpc: '2.0', id: 1 + (Random.rand * 9999).to_i } end
setup_request_method(which_request)
click to toggle source
# File lib/random_org/api_client.rb, line 48 def self.setup_request_method(which_request) case which_request when :generate_integers 'generateIntegers' when :generate_decimal_fractions 'generateDecimalFractions' when :generate_blobs 'generateBlobs' when :generate_uuids 'generateUUIDs' end end
wrong_api_key_error()
click to toggle source
# File lib/random_org/api_client.rb, line 66 def self.wrong_api_key_error raise WrongApiKeyError, 'Wrong or missing API key, ' \ 'check your configuration.' end