Class: MFYNAB::MoneyForward::AccountStatus
- Inherits:
-
Object
- Object
- MFYNAB::MoneyForward::AccountStatus
- Defined in:
- lib/mfynab/money_forward/account_status.rb
Defined Under Namespace
Classes: Fetcher
Constant Summary collapse
- FRESHNESS_LIMIT =
1 day
24 * 60 * 60
Instance Attribute Summary collapse
-
#id_hash ⇒ Object
readonly
Returns the value of attribute id_hash.
-
#key ⇒ Object
readonly
Returns the value of attribute key.
-
#message ⇒ Object
readonly
Returns the value of attribute message.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#raw_status ⇒ Object
readonly
Returns the value of attribute raw_status.
-
#updated_at ⇒ Object
readonly
Returns the value of attribute updated_at.
Instance Method Summary collapse
- #assign_status_data(key:, message: nil) ⇒ Object
- #failed_state? ⇒ Boolean
-
#initialize(id_hash:, name:, raw_status:, updated_at:) ⇒ AccountStatus
constructor
A new instance of AccountStatus.
- #invalid_state_warning ⇒ Object
- #outdated? ⇒ Boolean
- #should_update?(update_invalid:) ⇒ Boolean
- #trigger_update(session) ⇒ Object
Constructor Details
#initialize(id_hash:, name:, raw_status:, updated_at:) ⇒ AccountStatus
Returns a new instance of AccountStatus.
74 75 76 77 78 79 |
# File 'lib/mfynab/money_forward/account_status.rb', line 74 def initialize(id_hash:, name:, raw_status:, updated_at:) @id_hash = id_hash @name = name @raw_status = raw_status @updated_at = updated_at end |
Instance Attribute Details
#id_hash ⇒ Object (readonly)
Returns the value of attribute id_hash.
72 73 74 |
# File 'lib/mfynab/money_forward/account_status.rb', line 72 def id_hash @id_hash end |
#key ⇒ Object (readonly)
Returns the value of attribute key.
72 73 74 |
# File 'lib/mfynab/money_forward/account_status.rb', line 72 def key @key end |
#message ⇒ Object (readonly)
Returns the value of attribute message.
72 73 74 |
# File 'lib/mfynab/money_forward/account_status.rb', line 72 def @message end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
72 73 74 |
# File 'lib/mfynab/money_forward/account_status.rb', line 72 def name @name end |
#raw_status ⇒ Object (readonly)
Returns the value of attribute raw_status.
72 73 74 |
# File 'lib/mfynab/money_forward/account_status.rb', line 72 def raw_status @raw_status end |
#updated_at ⇒ Object (readonly)
Returns the value of attribute updated_at.
72 73 74 |
# File 'lib/mfynab/money_forward/account_status.rb', line 72 def updated_at @updated_at end |
Instance Method Details
#assign_status_data(key:, message: nil) ⇒ Object
81 82 83 84 |
# File 'lib/mfynab/money_forward/account_status.rb', line 81 def assign_status_data(key:, message: nil) @key = key @message = end |
#failed_state? ⇒ Boolean
103 104 105 |
# File 'lib/mfynab/money_forward/account_status.rb', line 103 def failed_state? !%i[success processing].include?(key) end |
#invalid_state_warning ⇒ Object
86 87 88 89 90 |
# File 'lib/mfynab/money_forward/account_status.rb', line 86 def invalid_state_warning warning = "The Money Forward account named #{name} is in an invalid state: #{key}" warning << " (#{})" if warning << ". Please handle the issue manually to resume syncing." end |
#outdated? ⇒ Boolean
92 93 94 95 96 |
# File 'lib/mfynab/money_forward/account_status.rb', line 92 def outdated? # Require accounts to have been updated in the last day # FIXME: make configurable? updated_at < Time.now - FRESHNESS_LIMIT end |
#should_update?(update_invalid:) ⇒ Boolean
98 99 100 101 |
# File 'lib/mfynab/money_forward/account_status.rb', line 98 def should_update?(update_invalid:) (key == :success && outdated?) || (update_invalid && failed_state?) end |
#trigger_update(session) ⇒ Object
107 108 109 110 111 112 113 |
# File 'lib/mfynab/money_forward/account_status.rb', line 107 def trigger_update(session) session.http_post( "/faggregation_queue2/#{id_hash}", URI.encode_www_form(commit: "更新"), "X-CSRF-Token" => session.csrf_token, ) end |