Class: FdxV660Api::RecurringPaymentEntityErrorException

Inherits:
APIException
  • Object
show all
Defined in:
lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb

Overview

A recurring payment. Financial institution is free to adjust the payment date to accommodate weekends and holidays

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(reason, response) ⇒ RecurringPaymentEntityErrorException

The constructor.

Parameters:

  • reason (String)

    The reason for raising an exception.

  • response (HttpResponse)

    The HttpReponse of the API call.



75
76
77
78
79
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 75

def initialize(reason, response)
  super(reason, response)
  hash = APIHelper.json_deserialize(@response.raw_body)
  unbox(hash)
end

Instance Attribute Details

#amountFloat

Amount for the payment. Must be positive

Returns:

  • (Float)


37
38
39
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 37

def amount
  @amount
end

#cancelled_timestampDateTime

When the recurring payment was cancelled

Returns:

  • (DateTime)


58
59
60
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 58

def cancelled_timestamp
  @cancelled_timestamp
end

#descriptionString

The purpose of the payment as provided by consumer or payment-requesting app

Returns:

  • (String)


33
34
35
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 33

def description
  @description
end

#due_dateDate

Date that the funds are scheduled to be delivered

Returns:

  • (Date)


45
46
47
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 45

def due_date
  @due_date
end

#durationRecurringPaymentDurationEntity2

Defines how long the payment repeats for



20
21
22
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 20

def duration
  @duration
end

#failed_timestampDateTime

When the recurring payment failed

Returns:

  • (DateTime)


66
67
68
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 66

def failed_timestamp
  @failed_timestamp
end

#frequencyEventFrequency3

Defines how often the payment repeats

Returns:



16
17
18
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 16

def frequency
  @frequency
end

#from_account_idString

ID of the account used to source funds for payment

Returns:

  • (String)


24
25
26
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 24

def 
  @from_account_id
end

#merchant_account_idString

User's account identifier with the merchant

Returns:

  • (String)


41
42
43
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 41

def 
  @merchant_account_id
end

#processed_timestampDateTime

When the last payment executed

Returns:

  • (DateTime)


62
63
64
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 62

def processed_timestamp
  @processed_timestamp
end

#recurring_payment_idString

Uniquely identifies a recurring payment. Used within the API to reference a recurring payment

Returns:

  • (String)


50
51
52
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 50

def recurring_payment_id
  @recurring_payment_id
end

#scheduled_timestampDateTime

When the recurring payment was scheduled

Returns:

  • (DateTime)


54
55
56
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 54

def scheduled_timestamp
  @scheduled_timestamp
end

#statusRecurringPaymentStatus2

Defines the status of the recurring payment



70
71
72
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 70

def status
  @status
end

#to_payee_idString

ID of the payee to receive funds for the payment

Returns:

  • (String)


28
29
30
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 28

def to_payee_id
  @to_payee_id
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



135
136
137
138
139
140
141
142
143
144
145
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 135

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} frequency: #{@frequency.inspect}, duration: #{@duration.inspect},"\
  " from_account_id: #{@from_account_id.inspect}, to_payee_id: #{@to_payee_id.inspect},"\
  " description: #{@description.inspect}, amount: #{@amount.inspect}, merchant_account_id:"\
  " #{@merchant_account_id.inspect}, due_date: #{@due_date.inspect}, recurring_payment_id:"\
  " #{@recurring_payment_id.inspect}, scheduled_timestamp: #{@scheduled_timestamp.inspect},"\
  " cancelled_timestamp: #{@cancelled_timestamp.inspect}, processed_timestamp:"\
  " #{@processed_timestamp.inspect}, failed_timestamp: #{@failed_timestamp.inspect}, status:"\
  " #{@status.inspect}>"
end

#to_sObject

Provides a human-readable string representation of the object.



123
124
125
126
127
128
129
130
131
132
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 123

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} frequency: #{@frequency}, duration: #{@duration}, from_account_id:"\
  " #{@from_account_id}, to_payee_id: #{@to_payee_id}, description: #{@description}, amount:"\
  " #{@amount}, merchant_account_id: #{@merchant_account_id}, due_date: #{@due_date},"\
  " recurring_payment_id: #{@recurring_payment_id}, scheduled_timestamp:"\
  " #{@scheduled_timestamp}, cancelled_timestamp: #{@cancelled_timestamp},"\
  " processed_timestamp: #{@processed_timestamp}, failed_timestamp: #{@failed_timestamp},"\
  " status: #{@status}>"
end

#unbox(hash) ⇒ Object

Populates this object by extracting properties from a hash. response body.

Parameters:

  • hash (Hash)

    The deserialized response sent by the server in the



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/fdx_v660_api/exceptions/recurring_payment_entity_error_exception.rb', line 84

def unbox(hash)
  return nil unless hash

  @frequency = hash.key?('frequency') ? hash['frequency'] : nil
  @duration = RecurringPaymentDurationEntity2.from_hash(hash['duration']) if hash['duration']
  @from_account_id =
    hash.key?('fromAccountId') ? hash['fromAccountId'] : nil
  @to_payee_id = hash.key?('toPayeeId') ? hash['toPayeeId'] : nil
  @description = hash.key?('description') ? hash['description'] : SKIP
  @amount = hash.key?('amount') ? hash['amount'] : nil
  @merchant_account_id =
    hash.key?('merchantAccountId') ? hash['merchantAccountId'] : SKIP
  @due_date = hash.key?('dueDate') ? hash['dueDate'] : nil
  @recurring_payment_id =
    hash.key?('recurringPaymentId') ? hash['recurringPaymentId'] : SKIP
  @scheduled_timestamp = if hash.key?('scheduledTimestamp')
                           (DateTimeHelper.from_rfc3339(hash['scheduledTimestamp']) if hash['scheduledTimestamp'])
                         else
                           SKIP
                         end
  @cancelled_timestamp = if hash.key?('cancelledTimestamp')
                           (DateTimeHelper.from_rfc3339(hash['cancelledTimestamp']) if hash['cancelledTimestamp'])
                         else
                           SKIP
                         end
  @processed_timestamp = if hash.key?('processedTimestamp')
                           (DateTimeHelper.from_rfc3339(hash['processedTimestamp']) if hash['processedTimestamp'])
                         else
                           SKIP
                         end
  @failed_timestamp = if hash.key?('failedTimestamp')
                        (DateTimeHelper.from_rfc3339(hash['failedTimestamp']) if hash['failedTimestamp'])
                      else
                        SKIP
                      end
  @status = hash.key?('status') ? hash['status'] : nil
end