module MangoApi::Cards

Provides API method delegates concerning the Card entity

Public Class Methods

complete_registration(id, registration_data) click to toggle source

Allows completion of a card registration with the registration data received from the Tokenization Server.

@param registration_data [String] registration data from the Tokenization Server @return [CardRegistration] the completed CardRegistration entity object

# File lib/mangopay/api/service/cards.rb, line 40
def complete_registration(id, registration_data)
  uri = provide_uri(:complete_card_registration, id)
  request = CompleteRegistrationRequest.new(registration_data)
  response = HttpClient.put(uri, request)
  parse_registration response
end
create_registration(card_registration, id_key = nil) click to toggle source

Creates a new card registration entity.

CardRegistration properties:

  • Required

    • user_id

    • currency

  • Optional

    • tag

    • card_type

@param card_registration [CardRegistration] model object of card registration to be created @param id_key [String] idempotency key for future response replication @return [CardRegistration] the newly-created CardRegistration entity object

# File lib/mangopay/api/service/cards.rb, line 27
def create_registration(card_registration, id_key = nil)
  uri = provide_uri(:create_card_registration)
  response = HttpClient.post(uri, card_registration, id_key)
  parse_registration response
end
deactivate(id) click to toggle source

Deactivates the card entity specified by an id.

@param id [String] ID of the card to deactivate @return [Card] the deactivated card entity object

# File lib/mangopay/api/service/cards.rb, line 114
def deactivate(id)
  uri = provide_uri(:deactivate_card, id)
  response = HttpClient.put(uri, DeactivationRequest.new)
  parse_card response
end
get(id) click to toggle source

Retrieves a card entity.

@param id [String] ID of the card entity to retrieve @return [Card] the requested Card entity object

# File lib/mangopay/api/service/cards.rb, line 61
def get(id)
  uri = provide_uri(:get_card, id)
  response = HttpClient.get(uri)
  parse_card response
end
get_registration(id) click to toggle source

Retrieves a card registration entity.

@param id [String] ID of the card registration to retrieve @return [CardRegistration] the requested entity object

# File lib/mangopay/api/service/cards.rb, line 51
def get_registration(id)
  uri = provide_uri(:get_card_registration, id)
  response = HttpClient.get(uri)
  parse_registration response
end
of_user(id) { |filter_request = filter_request| ... } click to toggle source

Retrieves pages of a user's card entities. Allows configuration of paging and sorting parameters by yielding a filtering object to a provided block. When no filters are specified, will retrieve the first page of 10 newest results.

Allowed FilterRequest params:

  • page

  • per_page

  • sort_field and sort_direction

@param id [String] ID of the user whose cards to retrieve @return [Array] array of hashed card entities corresponding to provided filters

# File lib/mangopay/api/service/cards.rb, line 81
def of_user(id)
  uri = provide_uri(:get_users_cards, id)
  filter_request = nil
  yield filter_request = FilterRequest.new if block_given?
  results = HttpClient.get(uri, filter_request)
  parse_cards results
end
validate(id) click to toggle source

Validates the card entity specified by an id.

@param id [String] ID of the card to validate @return [Card] the validated card entity object

# File lib/mangopay/api/service/cards.rb, line 124
def validate(id)
  uri = provide_uri(:card_validate, id)
  response = HttpClient.post(uri, nil)
  parse_card response
end
with_fingerprint(fingerprint) { |filter_request = filter_request| ... } click to toggle source

Retrieves pages of card entities corresponding to a certain fingerprint. The Fingerprint is a unique hash key uniquely generated per 16-digit card number.

Allowed FilterRequest params:

  • page

  • per_page

  • sort_field and sort_direction

@param fingerprint [String] uniquely hashed card number which to search for @return [Array] array of hashed card entities corresponding to provided filters

# File lib/mangopay/api/service/cards.rb, line 102
def with_fingerprint(fingerprint)
  uri = provide_uri(:get_cards_by_fingerprint, fingerprint)
  filter_request = nil
  yield filter_request = FilterRequest.new if block_given?
  results = HttpClient.get(uri, filter_request)
  parse_cards results
end

Private Class Methods

parse_card(response) click to toggle source

Parses a JSON-originating hash into the corresponding Card entity object.

@param response [Hash] JSON-originating data hash @return [Card] corresponding Card entity object

# File lib/mangopay/api/service/cards.rb, line 146
def parse_card(response)
  MangoModel::Card.new.dejsonify response
end
parse_cards(results) click to toggle source

Parses an array of JSON-originating hashes into the corresponding Card entity objects.

@param results [Array] JSON-originating data hashes @return [Array] parsed Card entity objects

# File lib/mangopay/api/service/cards.rb, line 155
def parse_cards(results)
  results.collect do |entity|
    parse_card entity
  end
end
parse_registration(response) click to toggle source

Parses a JSON-originating hash into the corresponding CardRegistration entity object.

@param response [Hash] JSON-originating data hash @return [CardRegistration] corresponding CardRegistration entity object

# File lib/mangopay/api/service/cards.rb, line 137
def parse_registration(response)
  MangoModel::CardRegistration.new.dejsonify response
end