module MangoApi::BankAccounts

Provides API method delegates concerning the BankAccount entity

Public Class Methods

all(user_id) { |filter_request = filter_request| ... } click to toggle source

Retrieves pages of a user's bank accounts. 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 user_id [String] ID of the user whose bank accounts to get @return [Array] parsed BankAccount entity objects

# File lib/mangopay/api/service/bank_accounts.rb, line 95
def all(user_id)
  uri = provide_uri(:get_accounts, user_id)
  filter_request = nil
  yield filter_request = FilterRequest.new if block_given?
  results = HttpClient.get(uri, filter_request)
  parse_results results
end
create(account, id_key = nil) click to toggle source

Creates a new bank account entity.

BankAccount properties:

  • +IbanBankAccount

    • tag - optional

    • owner_address - required

    • owner_name - required

    • iban - required

    • bic - optional

  • UsBankAccount

    • tag - optional

    • owner_address - required

    • owner_name - required

    • account_number - required

    • aba - required

    • deposit_account_type - optional

  • CaBankAccount

    • tag - optional

    • owner_address - required

    • owner_name - required

    • branch_code - required

    • institution_number - required

    • account_number - required

    • bank_name - required

  • GbBankAccount

    • tag - optional

    • owner_address - required

    • owner_name - required

    • sort_code - required

    • account_number - required

  • OtherBankAccount

    • tag optional

    • owner_address - required

    • owner_name - required

    • country - required

    • bic - required

    • account_number - required

@param account [BankAccount] model object of account to be created @param id_key [String] idempotency key for future response replication @return [BankAccount] the newly-created BankAccount entity object

# File lib/mangopay/api/service/bank_accounts.rb, line 53
def create(account, id_key = nil)
  uri = provide_uri(:create_account, account)
  response = HttpClient.post(uri, account, id_key)
  parse response
end
deactivate(user_id, account_id) click to toggle source

Deactivates a bank account entity.

@param user_id [String] ID of the owner of the account being deactivated @param account_id [String] ID of the bank account being deactivated @return [BankAccount] deactivated BankAccount entity object

# File lib/mangopay/api/service/bank_accounts.rb, line 65
def deactivate(user_id, account_id)
  uri = provide_uri(:deactivate_account, user_id, account_id)
  response = HttpClient.put(uri, DeactivationRequest.new)
  parse response
end
get(user_id, account_id) click to toggle source

Retrieves a bank account for a user.

@param user_id [String] ID of the bank account's owner @param +account+id+ [String] ID of the bank account @return [BankAccount] the corresponding BankAccount object

# File lib/mangopay/api/service/bank_accounts.rb, line 76
def get(user_id, account_id)
  uri = provide_uri(:get_account, user_id, account_id)
  response = HttpClient.get(uri)
  parse response
end

Private Class Methods

bank_account_type(hash) click to toggle source

Asserts the type of bank account represented by a hash.

@param hash [Hash] source hash @return [Class] type of bank account represented by the hash

# File lib/mangopay/api/service/bank_accounts.rb, line 130
def bank_account_type(hash)
  case hash['Type']
  when MangoModel::AccountType::IBAN.to_s
    MangoModel::IbanBankAccount
  when MangoModel::AccountType::US.to_s
    MangoModel::UsBankAccount
  when MangoModel::AccountType::CA.to_s
    MangoModel::CaBankAccount
  when MangoModel::AccountType::GB.to_s
    MangoModel::GbBankAccount
  else
    MangoModel::OtherBankAccount
  end
end
parse(response) click to toggle source

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

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

# File lib/mangopay/api/service/bank_accounts.rb, line 121
def parse(response)
  type = bank_account_type(response)
  type.new.dejsonify response
end
parse_results(results) click to toggle source

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

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

# File lib/mangopay/api/service/bank_accounts.rb, line 110
def parse_results(results)
  results.collect do |entity|
    parse entity
  end
end