class SVBClient
Constants
- API_KEY
- BASE_URL
- COMPANY_ID
- ENVIRO
- HMAC_SECRET
- KEY_ID
- PARTNER_ID
Public Class Methods
new(api_key, hmac, enviro='', base_url='https://api.svb.com', company_id=nil, key_id=nil, partner_id=nil)
click to toggle source
# File lib/client.rb, line 16 def initialize(api_key, hmac, enviro='', base_url='https://api.svb.com', company_id=nil, key_id=nil, partner_id=nil) self.API_KEY = api_key self.HMAC_SECRET = hmac self.ENVIRO = enviro if ['live', 'test'].includes? enviro self.BASE_URL = base_url self.COMPANY_ID = company_id self.KEY_ID = key_id self.PARTNER_ID = partner_id end
Public Instance Methods
get(path, query)
click to toggle source
# File lib/client.rb, line 45 def get(path, query) mytimestamp = timestamp_header signature = signature(mytimestamp, 'GET', path, query, '') uri = URI.parse(BASE_URL + path + query) request = Net::HTTP::Get.new(uri.request_uri) request["X-Timestamp"] = mytimestamp request["X-Signature"] = signature make_request(uri, request) end
make_request(uri, request)
click to toggle source
# File lib/client.rb, line 35 def make_request(uri, request) http = Net::HTTP.new(uri.host, 443) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_PEER request["Authorization"] = "Bearer " + API_KEY request["Content-Type"] = "application/json" response = http.request(request) end
post(path, jsonbody)
click to toggle source
# File lib/client.rb, line 57 def post(path, jsonbody) mytimestamp = timestamp_header signature = signature(mytimestamp, 'POST', path, '', JSON.generate(jsonbody)) uri = URI.parse(BASE_URL + path) request = Net::HTTP::Post.new(uri.request_uri, 'Content-Type' => 'application/json') request.body = jsonbody.to_json request["X-Timestamp"] = mytimestamp request["X-Signature"] = signature make_request(uri, request) end
signature(timestamp, method, path, query, body)
click to toggle source
# File lib/client.rb, line 26 def signature(timestamp, method, path, query, body) message = [timestamp, method, path, query, body].join("\n") OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), HMAC_SECRET, message) end
timestamp_header()
click to toggle source
# File lib/client.rb, line 31 def timestamp_header Time.now.to_i.to_s end