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.



3744
3745
3746
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 3744

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.



3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 3750

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.



3768
3769
3770
3771
3772
3773
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 3768

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.



3779
3780
3781
3782
3783
3784
3785
3786
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 3779

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