Class: ThePlaidApi::InstitutionStatus

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/the_plaid_api/models/institution_status.rb

Overview

The status of an institution is determined by the health of its Item logins, Transactions updates, Investments updates, Liabilities updates, Auth requests, Balance requests, Identity requests, Investments requests, and Liabilities requests. A login attempt is conducted during the initial Item add in Link. If there is not enough traffic to accurately calculate an institution’s status, Plaid will return null rather than potentially inaccurate data. Institution status is accessible in the Dashboard and via the API using the ‘/institutions/get_by_id` endpoint with the `options.include_status` option set to true. Note that institution status is not available in the Sandbox environment.

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(item_logins: SKIP, transactions_updates: SKIP, auth: SKIP, identity: SKIP, investments_updates: SKIP, liabilities_updates: SKIP, liabilities: SKIP, investments: SKIP, health_incidents: SKIP, additional_properties: nil) ⇒ InstitutionStatus

Returns a new instance of InstitutionStatus.



126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# File 'lib/the_plaid_api/models/institution_status.rb', line 126

def initialize(item_logins: SKIP, transactions_updates: SKIP, auth: SKIP,
               identity: SKIP, investments_updates: SKIP,
               liabilities_updates: SKIP, liabilities: SKIP,
               investments: SKIP, health_incidents: SKIP,
               additional_properties: nil)
  # Add additional model properties to the instance
  additional_properties = {} if additional_properties.nil?

  @item_logins = item_logins unless item_logins == SKIP
  @transactions_updates = transactions_updates unless transactions_updates == SKIP
  @auth = auth unless auth == SKIP
  @identity = identity unless identity == SKIP
  @investments_updates = investments_updates unless investments_updates == SKIP
  @liabilities_updates = liabilities_updates unless liabilities_updates == SKIP
  @liabilities = liabilities unless liabilities == SKIP
  @investments = investments unless investments == SKIP
  @health_incidents = health_incidents unless health_incidents == SKIP
  @additional_properties = additional_properties
end

Instance Attribute Details

#authProductStatus

A representation of the status health of a request type. Auth requests, Balance requests, Identity requests, Investments requests, Liabilities requests, Transactions updates, Investments updates, Liabilities updates, and Item logins each have their own status object.

Returns:



40
41
42
# File 'lib/the_plaid_api/models/institution_status.rb', line 40

def auth
  @auth
end

#health_incidentsArray[HealthIncident]

Details of recent health incidents associated with the institution.

Returns:



79
80
81
# File 'lib/the_plaid_api/models/institution_status.rb', line 79

def health_incidents
  @health_incidents
end

#identityProductStatus

A representation of the status health of a request type. Auth requests, Balance requests, Identity requests, Investments requests, Liabilities requests, Transactions updates, Investments updates, Liabilities updates, and Item logins each have their own status object.

Returns:



47
48
49
# File 'lib/the_plaid_api/models/institution_status.rb', line 47

def identity
  @identity
end

#investmentsProductStatus

A representation of the status health of a request type. Auth requests, Balance requests, Identity requests, Investments requests, Liabilities requests, Transactions updates, Investments updates, Liabilities updates, and Item logins each have their own status object.

Returns:



75
76
77
# File 'lib/the_plaid_api/models/institution_status.rb', line 75

def investments
  @investments
end

#investments_updatesProductStatus

A representation of the status health of a request type. Auth requests, Balance requests, Identity requests, Investments requests, Liabilities requests, Transactions updates, Investments updates, Liabilities updates, and Item logins each have their own status object.

Returns:



54
55
56
# File 'lib/the_plaid_api/models/institution_status.rb', line 54

def investments_updates
  @investments_updates
end

#item_loginsProductStatus

A representation of the status health of a request type. Auth requests, Balance requests, Identity requests, Investments requests, Liabilities requests, Transactions updates, Investments updates, Liabilities updates, and Item logins each have their own status object.

Returns:



26
27
28
# File 'lib/the_plaid_api/models/institution_status.rb', line 26

def item_logins
  @item_logins
end

#liabilitiesProductStatus

A representation of the status health of a request type. Auth requests, Balance requests, Identity requests, Investments requests, Liabilities requests, Transactions updates, Investments updates, Liabilities updates, and Item logins each have their own status object.

Returns:



68
69
70
# File 'lib/the_plaid_api/models/institution_status.rb', line 68

def liabilities
  @liabilities
end

#liabilities_updatesProductStatus

A representation of the status health of a request type. Auth requests, Balance requests, Identity requests, Investments requests, Liabilities requests, Transactions updates, Investments updates, Liabilities updates, and Item logins each have their own status object.

Returns:



61
62
63
# File 'lib/the_plaid_api/models/institution_status.rb', line 61

def liabilities_updates
  @liabilities_updates
end

#transactions_updatesProductStatus

A representation of the status health of a request type. Auth requests, Balance requests, Identity requests, Investments requests, Liabilities requests, Transactions updates, Investments updates, Liabilities updates, and Item logins each have their own status object.

Returns:



33
34
35
# File 'lib/the_plaid_api/models/institution_status.rb', line 33

def transactions_updates
  @transactions_updates
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'lib/the_plaid_api/models/institution_status.rb', line 147

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  item_logins = ProductStatus.from_hash(hash['item_logins']) if hash['item_logins']
  transactions_updates = ProductStatus.from_hash(hash['transactions_updates']) if
    hash['transactions_updates']
  auth = ProductStatus.from_hash(hash['auth']) if hash['auth']
  identity = ProductStatus.from_hash(hash['identity']) if hash['identity']
  investments_updates = ProductStatus.from_hash(hash['investments_updates']) if
    hash['investments_updates']
  liabilities_updates = ProductStatus.from_hash(hash['liabilities_updates']) if
    hash['liabilities_updates']
  liabilities = ProductStatus.from_hash(hash['liabilities']) if hash['liabilities']
  investments = ProductStatus.from_hash(hash['investments']) if hash['investments']
  # Parameter is an array, so we need to iterate through it
  health_incidents = nil
  unless hash['health_incidents'].nil?
    health_incidents = []
    hash['health_incidents'].each do |structure|
      health_incidents << (HealthIncident.from_hash(structure) if structure)
    end
  end

  health_incidents = SKIP unless hash.key?('health_incidents')

  # 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.
  InstitutionStatus.new(item_logins: item_logins,
                        transactions_updates: transactions_updates,
                        auth: auth,
                        identity: identity,
                        investments_updates: investments_updates,
                        liabilities_updates: liabilities_updates,
                        liabilities: liabilities,
                        investments: investments,
                        health_incidents: health_incidents,
                        additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.



82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/the_plaid_api/models/institution_status.rb', line 82

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['item_logins'] = 'item_logins'
  @_hash['transactions_updates'] = 'transactions_updates'
  @_hash['auth'] = 'auth'
  @_hash['identity'] = 'identity'
  @_hash['investments_updates'] = 'investments_updates'
  @_hash['liabilities_updates'] = 'liabilities_updates'
  @_hash['liabilities'] = 'liabilities'
  @_hash['investments'] = 'investments'
  @_hash['health_incidents'] = 'health_incidents'
  @_hash
end

.nullablesObject

An array for nullable fields



112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/the_plaid_api/models/institution_status.rb', line 112

def self.nullables
  %w[
    item_logins
    transactions_updates
    auth
    identity
    investments_updates
    liabilities_updates
    liabilities
    investments
    health_incidents
  ]
end

.optionalsObject

An array for optional fields



97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/the_plaid_api/models/institution_status.rb', line 97

def self.optionals
  %w[
    item_logins
    transactions_updates
    auth
    identity
    investments_updates
    liabilities_updates
    liabilities
    investments
    health_incidents
  ]
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



204
205
206
207
208
209
210
211
212
# File 'lib/the_plaid_api/models/institution_status.rb', line 204

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} item_logins: #{@item_logins.inspect}, transactions_updates:"\
  " #{@transactions_updates.inspect}, auth: #{@auth.inspect}, identity: #{@identity.inspect},"\
  " investments_updates: #{@investments_updates.inspect}, liabilities_updates:"\
  " #{@liabilities_updates.inspect}, liabilities: #{@liabilities.inspect}, investments:"\
  " #{@investments.inspect}, health_incidents: #{@health_incidents.inspect},"\
  " additional_properties: #{@additional_properties}>"
end

#to_sObject

Provides a human-readable string representation of the object.



194
195
196
197
198
199
200
201
# File 'lib/the_plaid_api/models/institution_status.rb', line 194

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} item_logins: #{@item_logins}, transactions_updates:"\
  " #{@transactions_updates}, auth: #{@auth}, identity: #{@identity}, investments_updates:"\
  " #{@investments_updates}, liabilities_updates: #{@liabilities_updates}, liabilities:"\
  " #{@liabilities}, investments: #{@investments}, health_incidents: #{@health_incidents},"\
  " additional_properties: #{@additional_properties}>"
end