class Blinkbox::CreditCardServiceClient

Attributes

headers[RW]

Public Class Methods

new(server_uri, proxy_uri = nil) click to toggle source
# File lib/blinkbox/user/credit_card_service_client.rb, line 10
def initialize(server_uri, proxy_uri = nil)
  self.class.base_uri(server_uri.to_s)
  self.class.http_proxy(proxy_uri.host, proxy_uri.port, proxy_uri.user, proxy_uri.password) if proxy_uri
  self.class.debug_output($stderr) if ENV['DEBUG']
  @headers = {}
end

Public Instance Methods

add_credit_card(access_token, card_details = {}) click to toggle source
# File lib/blinkbox/user/credit_card_service_client.rb, line 22
def add_credit_card(access_token, card_details = {})
  response = nil
  10.times do
    response = http_post("/service/my/creditcards", card_details, access_token)
    break if response.successful?
  end
  fail 'Adding credit card failed' unless response.successful?

  #return details of the newly added card
  MultiJson.load(response.body)
end
use_proxy(proxy_uri) click to toggle source
# File lib/blinkbox/user/credit_card_service_client.rb, line 17
def use_proxy(proxy_uri)
  proxy_uri = URI.parse(proxy_uri) if proxy_uri.is_a?(String)
  self.class.http_proxy(proxy_uri.host, proxy_uri.port, proxy_uri.user, proxy_uri.password)
end

Private Instance Methods

http_post(uri, body, access_token = nil) click to toggle source
# File lib/blinkbox/user/credit_card_service_client.rb, line 36
def http_post(uri, body, access_token = nil)
  http_send(:post, uri, body, access_token)
end
http_send(verb, uri, post_body, access_token = nil) click to toggle source
# File lib/blinkbox/user/credit_card_service_client.rb, line 40
def http_send(verb, uri, post_body, access_token = nil)
  headers = { "Content-Type" => "application/vnd.blinkboxbooks.data.v1+json" }.merge(@headers)
  headers["Authorization"] = "Bearer #{access_token}" if access_token
  self.class.send(verb, uri.to_s, headers: headers, body: post_body.to_json)
  HttpCapture::RESPONSES.last
end