Class: Pluggy::Resources::Item
Overview
A connection to one financial institution.
There is no GET /items endpoint -- items cannot be listed. Persist the ids
you create, normally keyed by your own clientUserId.
Constant Summary
Constants inherited
from PluggyObject
PluggyObject::ISO8601, PluggyObject::RESERVED, PluggyObject::TEMPORAL_KEYS
Instance Attribute Summary
Attributes inherited from PluggyObject
#client
Instance Method Summary
collapse
#==, #[], #as_json, declared_fields, define_field, #each_pair, fields, #hash, #initialize, #inspect, #key?, #keys, #method_missing, nested, nested_types, #read, #respond_to_missing?, #to_h, #to_json, #values
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class Pluggy::PluggyObject
Instance Method Details
#accounts(type: nil) ⇒ Object
80
|
# File 'lib/pluggy/resources/item.rb', line 80
def accounts(type: nil) = ensure_client!.accounts.list(item_id: self["id"], type: type)
|
#bank_accounts ⇒ Object
81
|
# File 'lib/pluggy/resources/item.rb', line 81
def bank_accounts = accounts(type: "BANK")
|
#consent_expired? ⇒ Boolean
75
76
77
78
|
# File 'lib/pluggy/resources/item.rb', line 75
def consent_expired?
expiry = self[:consentExpiresAt]
expiry.is_a?(Time) && expiry <= Time.now
end
|
#credit_accounts ⇒ Object
82
|
# File 'lib/pluggy/resources/item.rb', line 82
def credit_accounts = accounts(type: "CREDIT")
|
#delete ⇒ Object
97
|
# File 'lib/pluggy/resources/item.rb', line 97
def delete = ensure_client!.items.delete(self["id"])
|
#disable_auto_sync ⇒ Object
95
|
# File 'lib/pluggy/resources/item.rb', line 95
def disable_auto_sync = ensure_client!.items.disable_auto_sync(self["id"])
|
#failed? ⇒ Boolean
72
|
# File 'lib/pluggy/resources/item.rb', line 72
def failed? = !self["error"].nil? || self["executionStatus"].to_s.include?("ERROR")
|
#loans ⇒ Object
83
|
# File 'lib/pluggy/resources/item.rb', line 83
def loans = ensure_client!.loans.list(item_id: self["id"])
|
#login_error? ⇒ Boolean
67
|
# File 'lib/pluggy/resources/item.rb', line 67
def login_error? = self["status"] == "LOGIN_ERROR"
|
#outdated? ⇒ Boolean
68
|
# File 'lib/pluggy/resources/item.rb', line 68
def outdated? = self["status"] == "OUTDATED"
|
#refresh ⇒ Object
98
|
# File 'lib/pluggy/resources/item.rb', line 98
def refresh = ensure_client!.items.retrieve(self["id"])
|
#send_mfa(values) ⇒ Object
94
|
# File 'lib/pluggy/resources/item.rb', line 94
def send_mfa(values) = ensure_client!.items.send_mfa(self["id"], values)
|
#succeeded? ⇒ Boolean
73
|
# File 'lib/pluggy/resources/item.rb', line 73
def succeeded? = self["executionStatus"] == "SUCCESS"
|
#sync(**body) ⇒ Object
96
|
# File 'lib/pluggy/resources/item.rb', line 96
def sync(**body) = ensure_client!.items.update(self["id"], **body)
|
#transactions(**filters, &block) ⇒ Object
Every transaction on every account of this item, as one lazy stream.
86
87
88
89
90
91
92
|
# File 'lib/pluggy/resources/item.rb', line 86
def transactions(**filters, &block)
return enum_for(:transactions, **filters) unless block_given?
accounts.each do |account|
account.transactions(**filters).auto_paging_each(&block)
end
end
|
#updated? ⇒ Boolean
status and executionStatus are unconstrained strings in the spec --
no enum is declared anywhere and the documented values appear only in
examples. These predicates compare raw strings and never assume the set
is closed.
65
|
# File 'lib/pluggy/resources/item.rb', line 65
def updated? = self["status"] == "UPDATED"
|
#updating? ⇒ Boolean
66
|
# File 'lib/pluggy/resources/item.rb', line 66
def updating? = self["status"] == "UPDATING"
|
69
|
# File 'lib/pluggy/resources/item.rb', line 69
def waiting_user_input? = self["status"] == "WAITING_USER_INPUT" || !self["userAction"].nil?
|