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)


55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/wire_client/providers/base/wire_batch.rb', line 55

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



44
45
46
47
48
# File 'lib/wire_client/providers/base/wire_batch.rb', line 44

def self.arguments
  [
    :transaction_type
  ]
end

Instance Method Details

#add_transaction(transaction_options) ⇒ Object



73
74
75
# File 'lib/wire_client/providers/base/wire_batch.rb', line 73

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)


91
92
93
# File 'lib/wire_client/providers/base/wire_batch.rb', line 91

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_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_countryString

code; default: US)

Returns:

  • (String)

    The initiating party’s country (2 character country



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

class_attribute :initiator_country

#initiator_country_subdivisionString

2 character code; default: MA)

Returns:

  • (String)

    The initiating party’s country subdivision (name or



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

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_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.)


80
81
82
83
84
85
86
87
# File 'lib/wire_client/providers/base/wire_batch.rb', line 80

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