Class: Io::Flow::V0::Clients::VirtualCards

Inherits:
Object
  • Object
show all
Defined in:
lib/flow_commerce/flow_api_v0_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ VirtualCards

Returns a new instance of VirtualCards.



3575
3576
3577
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 3575

def initialize(client)
  @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client)
end

Instance Method Details

#get(organization, incoming = {}) ⇒ Object

Retrieve all the virtual credit cards that have been created matching selected criteria.



3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 3581

def get(organization, incoming={})
  HttpClient::Preconditions.assert_class('organization', organization, String)
  opts = HttpClient::Helper.symbolize_keys(incoming)
  query = {
    :id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
    :key => (x = opts.delete(:key); x.nil? ? nil : HttpClient::Preconditions.assert_class('key', x, String)),
    :limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
    :offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
    :sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "-created_at" : x), String)
  }.delete_if { |k, v| v.nil? }
  r = @client.request("/#{CGI.escape(organization)}/virtual/cards").with_query(query).get
  r.map { |x| ::Io::Flow::V0::Models::VirtualCard.new(x) }
end

#get_by_key(organization, key) ⇒ Object

Retrieves a virtual credit card using your unique key used when creating the card. Note that the card number and cvv will not be returned by this request to maintain PCI compliance. If you have lost these details you will need to create a new card.



3599
3600
3601
3602
3603
3604
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 3599

def get_by_key(organization, key)
  HttpClient::Preconditions.assert_class('organization', organization, String)
  HttpClient::Preconditions.assert_class('key', key, String)
  r = @client.request("/#{CGI.escape(organization)}/virtual/cards/#{CGI.escape(key)}").get
  ::Io::Flow::V0::Models::VirtualCard.new(r)
end

#put_authorizations_by_key_and_authorization_key(organization, key, authorization_key, virtual_card_form) ⇒ Object

Creates a new virtual credit card. The card number and cvv will only be returned once when creating the card to maintain PCI compliance. This end point is idempotent and subsequent calls with same key will return details for the previously created card.



3610
3611
3612
3613
3614
3615
3616
3617
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 3610

def put_authorizations_by_key_and_authorization_key(organization, key, authorization_key, virtual_card_form)
  HttpClient::Preconditions.assert_class('organization', organization, String)
  HttpClient::Preconditions.assert_class('key', key, String)
  HttpClient::Preconditions.assert_class('authorization_key', authorization_key, String)
  (x = virtual_card_form; x.is_a?(::Io::Flow::V0::Models::VirtualCardForm) ? x : ::Io::Flow::V0::Models::VirtualCardForm.new(x))
  r = @client.request("/#{CGI.escape(organization)}/virtual/cards/#{CGI.escape(key)}/authorizations/#{CGI.escape(authorization_key)}").with_json(virtual_card_form.to_json).put
  ::Io::Flow::V0::Models::VirtualCard.new(r)
end