class Ocs::Request
Attributes
client[R]
name[R]
options[R]
Public Class Methods
new(name:, options: {}, client:)
click to toggle source
# File lib/ocs/request.rb, line 5 def initialize(name:, options: {}, client:) @name = name @options = options @client = client end
Public Instance Methods
send()
click to toggle source
# File lib/ocs/request.rb, line 11 def send Response.new(connection.get(path, escaped_parameters, headers)) end
Private Instance Methods
api_key()
click to toggle source
# File lib/ocs/request.rb, line 17 def api_key client.api_key end
connection()
click to toggle source
# File lib/ocs/request.rb, line 21 def connection client.connection end
escape(string)
click to toggle source
# File lib/ocs/request.rb, line 25 def escape(string) URI.escape(string) end
escaped_parameters()
click to toggle source
# File lib/ocs/request.rb, line 29 def escaped_parameters escaped_parameters_without_signature.merge( signature: escaped_signature ) end
escaped_parameters_without_signature()
click to toggle source
# File lib/ocs/request.rb, line 35 def escaped_parameters_without_signature @escaped_parameters_without_signature ||= parameters_without_signature.inject({}) do |escaped_hash, (key, value)| escaped_hash[key] = escape(value) escaped_hash end end
escaped_signature()
click to toggle source
# File lib/ocs/request.rb, line 43 def escaped_signature escape(signature) end
headers()
click to toggle source
# File lib/ocs/request.rb, line 47 def headers nil end
parameters_without_signature()
click to toggle source
# File lib/ocs/request.rb, line 51 def parameters_without_signature options.merge( command: name, apikey: api_key, response: "json" ) end
path()
click to toggle source
# File lib/ocs/request.rb, line 59 def path client.path end
secret_key()
click to toggle source
# File lib/ocs/request.rb, line 63 def secret_key client.secret_key end
signature()
click to toggle source
# File lib/ocs/request.rb, line 67 def signature Base64.encode64( OpenSSL::HMAC::digest( OpenSSL::Digest::SHA1.new, secret_key, signature_seed ) ).chomp end
signature_seed()
click to toggle source
# File lib/ocs/request.rb, line 77 def signature_seed sorted_parameters = escaped_parameters_without_signature.to_a.sort do |a, b| a[0].to_s <=> b[0].to_s end sorted_parameters.map { |param| param.join("=") }.join("&").downcase end