Class: WireClient::Abstract::WireBatch

Inherits:
Object
  • Object
show all
Defined in:
lib/wire_client/providers/base/wire_batch.rb

Overview

Base class for sending batched Wire transfer transactions to various providers

Direct Known Subclasses

Sftp::WireBatch

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*arguments) ⇒ WireBatch

debit or credit

Parameters:

  • transaction_type (WireClient::TransactionTypes::TransactionType)


65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/wire_client/providers/base/wire_batch.rb', line 65

def initialize(*arguments)
  args = arguments.extract_options!
  self.class.arguments.each do |param|
    self.instance_variable_set(
      "@#{param}".to_sym,
      args[param]
    )
  end
  if @transaction_type == WireClient::TransactionTypes::Credit
    initialize_payment_initiation(CreditTransfer)
  elsif @transaction_type == WireClient::TransactionTypes::Debit
    initialize_payment_initiation(DirectDebit)
  else
    raise InvalidWireTransactionTypeError,
          'Transaction type should be explicitly defined'
  end
end

Class Method Details

.argumentsArray

instance attributes

Returns:

  • (Array)

    A list of arguments to use in the initializer, and as



54
55
56
57
58
# File 'lib/wire_client/providers/base/wire_batch.rb', line 54

def self.arguments
  [
    :transaction_type
  ]
end

Instance Method Details

#add_transaction(transaction_options) ⇒ Object



83
84
85
# File 'lib/wire_client/providers/base/wire_batch.rb', line 83

def add_transaction(transaction_options)
  @payment_initiation.add_transaction(transaction_options)
end

#do_send_batchObject

Implementation of sending the Wire transfer batch to the provider, to be

implemented by the subclass

Raises:

  • (AbstractMethodError)


101
102
103
# File 'lib/wire_client/providers/base/wire_batch.rb', line 101

def do_send_batch
  raise AbstractMethodError
end

#initiator_account_numberString

Returns Debtor’s or creditor’s Account Number.

Returns:

  • (String)

    Debtor’s or creditor’s Account Number



25
# File 'lib/wire_client/providers/base/wire_batch.rb', line 25

class_attribute :initiator_account_number

#initiator_address_lineString

Returns The initiating party’s Address line (default: NA).

Returns:

  • (String)

    The initiating party’s Address line (default: NA)



37
# File 'lib/wire_client/providers/base/wire_batch.rb', line 37

class_attribute :initiator_address_line

#initiator_bicString

Returns Debtor’s or creditor’s bank SWIFT Code / BIC.

Returns:

  • (String)

    Debtor’s or creditor’s bank SWIFT Code / BIC



22
# File 'lib/wire_client/providers/base/wire_batch.rb', line 22

class_attribute :initiator_bic

#initiator_cityString

(default: NA)

Returns:

  • (String)

    The initiating party’s City, town or municipality



41
# File 'lib/wire_client/providers/base/wire_batch.rb', line 41

class_attribute :initiator_city

#initiator_countryString

code; default: US)

Returns:

  • (String)

    The initiating party’s country (2 character country



49
# File 'lib/wire_client/providers/base/wire_batch.rb', line 49

class_attribute :initiator_country

#initiator_country_subdivisionString

2 character code; default: MA)

Returns:

  • (String)

    The initiating party’s country subdivision (name or



45
# File 'lib/wire_client/providers/base/wire_batch.rb', line 45

class_attribute :initiator_country_subdivision

#initiator_ibanString

Account Number) ID

Returns:

  • (String)

    Debtor’s or creditor’s IBAN (International Bank



19
# File 'lib/wire_client/providers/base/wire_batch.rb', line 19

class_attribute :initiator_iban

#initiator_identifierString

Returns The initiating party’s Identifier.

Returns:

  • (String)

    The initiating party’s Identifier



31
# File 'lib/wire_client/providers/base/wire_batch.rb', line 31

class_attribute :initiator_identifier

#initiator_nameString

the transfer

Returns:

  • (String)

    Debtor’s or creditor’s name for the one initianting



15
# File 'lib/wire_client/providers/base/wire_batch.rb', line 15

class_attribute :initiator_name

#initiator_postal_codeString

Returns The initiating party’s Postal code (default: NA).

Returns:

  • (String)

    The initiating party’s Postal code (default: NA)



34
# File 'lib/wire_client/providers/base/wire_batch.rb', line 34

class_attribute :initiator_postal_code

#initiator_wire_routing_numberString

Returns Debtor or creditor agent’s wire routing number.

Returns:

  • (String)

    Debtor or creditor agent’s wire routing number



28
# File 'lib/wire_client/providers/base/wire_batch.rb', line 28

class_attribute :initiator_wire_routing_number

#send_batchObject

Sends the batch to the provider. Useful to check transaction status

before sending any data (consistency, validation, etc.)


90
91
92
93
94
95
96
97
# File 'lib/wire_client/providers/base/wire_batch.rb', line 90

def send_batch
  if @payment_initiation.valid?
    do_send_batch
  else
    raise InvalidWireTransactionError,
          "invalid wire transfer: #{@payment_initiation.error_messages}"
  end
end