Class: Plaid::PendingExpirationWebhook

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/plaid/models/pending_expiration_webhook.rb

Overview

Fired when an Item’s access consent is expiring in 7 days. Some Items have explicit expiration times and we try to relay this when possible to reduce service disruption. This can be resolved by having the user go through Link’s update mode.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseModel

#check_for_conflict, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json

Constructor Details

#initialize(webhook_type:, webhook_code:, item_id:, consent_expiration_time:, additional_properties: nil) ⇒ PendingExpirationWebhook

Returns a new instance of PendingExpirationWebhook.



53
54
55
56
57
58
59
60
61
62
63
# File 'lib/plaid/models/pending_expiration_webhook.rb', line 53

def initialize(webhook_type:, webhook_code:, item_id:,
               consent_expiration_time:, additional_properties: nil)
  # Add additional model properties to the instance
  additional_properties = {} if additional_properties.nil?

  @webhook_type = webhook_type
  @webhook_code = webhook_code
  @item_id = item_id
  @consent_expiration_time = consent_expiration_time
  @additional_properties = additional_properties
end

Instance Attribute Details

The date and time at which the Item’s access consent will expire, in [ISO 8601](wikipedia.org/wiki/ISO_8601) format

Returns:

  • (DateTime)


31
32
33
# File 'lib/plaid/models/pending_expiration_webhook.rb', line 31

def consent_expiration_time
  @consent_expiration_time
end

#item_idString

The ‘item_id` of the Item associated with this webhook, warning, or error

Returns:

  • (String)


26
27
28
# File 'lib/plaid/models/pending_expiration_webhook.rb', line 26

def item_id
  @item_id
end

#webhook_codeString

‘PENDING_EXPIRATION`

Returns:

  • (String)


22
23
24
# File 'lib/plaid/models/pending_expiration_webhook.rb', line 22

def webhook_code
  @webhook_code
end

#webhook_typeString

‘ITEM`

Returns:

  • (String)


18
19
20
# File 'lib/plaid/models/pending_expiration_webhook.rb', line 18

def webhook_type
  @webhook_type
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/plaid/models/pending_expiration_webhook.rb', line 66

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  webhook_type = hash.key?('webhook_type') ? hash['webhook_type'] : nil
  webhook_code = hash.key?('webhook_code') ? hash['webhook_code'] : nil
  item_id = hash.key?('item_id') ? hash['item_id'] : nil
  consent_expiration_time = if hash.key?('consent_expiration_time')
                              (DateTimeHelper.from_rfc3339(hash['consent_expiration_time']) if hash['consent_expiration_time'])
                            end

  # Create a new hash for additional properties, removing known properties.
  new_hash = hash.reject { |k, _| names.value?(k) }

  additional_properties = APIHelper.get_additional_properties(
    new_hash, proc { |value| value }
  )

  # Create object from extracted values.
  PendingExpirationWebhook.new(webhook_type: webhook_type,
                               webhook_code: webhook_code,
                               item_id: item_id,
                               consent_expiration_time: consent_expiration_time,
                               additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.



34
35
36
37
38
39
40
41
# File 'lib/plaid/models/pending_expiration_webhook.rb', line 34

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['webhook_type'] = 'webhook_type'
  @_hash['webhook_code'] = 'webhook_code'
  @_hash['item_id'] = 'item_id'
  @_hash['consent_expiration_time'] = 'consent_expiration_time'
  @_hash
end

.nullablesObject

An array for nullable fields



49
50
51
# File 'lib/plaid/models/pending_expiration_webhook.rb', line 49

def self.nullables
  []
end

.optionalsObject

An array for optional fields



44
45
46
# File 'lib/plaid/models/pending_expiration_webhook.rb', line 44

def self.optionals
  []
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



105
106
107
108
109
110
# File 'lib/plaid/models/pending_expiration_webhook.rb', line 105

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} webhook_type: #{@webhook_type.inspect}, webhook_code:"\
  " #{@webhook_code.inspect}, item_id: #{@item_id.inspect}, consent_expiration_time:"\
  " #{@consent_expiration_time.inspect}, additional_properties: #{@additional_properties}>"
end


92
93
94
# File 'lib/plaid/models/pending_expiration_webhook.rb', line 92

def to_custom_consent_expiration_time
  DateTimeHelper.to_rfc3339(consent_expiration_time)
end

#to_sObject

Provides a human-readable string representation of the object.



97
98
99
100
101
102
# File 'lib/plaid/models/pending_expiration_webhook.rb', line 97

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} webhook_type: #{@webhook_type}, webhook_code: #{@webhook_code}, item_id:"\
  " #{@item_id}, consent_expiration_time: #{@consent_expiration_time}, additional_properties:"\
  " #{@additional_properties}>"
end