mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-05 05:25:24 +02:00
Balance sheet cache layer, non-blocking sync UI (#2356)
* Balance sheet cache layer with cache-busting * Update family cache timestamps during Sync * Less blocking sync loaders * Consolidate family data caching key logic * Fix turbo stream broadcasts * Remove dev delay * Add back account group sorting
This commit is contained in:
parent
dab693d74f
commit
10ce2c8e23
35 changed files with 529 additions and 466 deletions
|
@ -29,13 +29,13 @@ class Sync < ApplicationRecord
|
|||
state :failed
|
||||
state :stale
|
||||
|
||||
after_all_transitions :log_status_change
|
||||
after_all_transitions :handle_transition
|
||||
|
||||
event :start, after_commit: :report_warnings do
|
||||
event :start, after_commit: :handle_start_transition do
|
||||
transitions from: :pending, to: :syncing
|
||||
end
|
||||
|
||||
event :complete do
|
||||
event :complete, after_commit: :handle_completion_transition do
|
||||
transitions from: :syncing, to: :completed
|
||||
end
|
||||
|
||||
|
@ -163,9 +163,30 @@ class Sync < ApplicationRecord
|
|||
end
|
||||
end
|
||||
|
||||
def handle_start_transition
|
||||
report_warnings
|
||||
end
|
||||
|
||||
def handle_transition
|
||||
log_status_change
|
||||
family.touch(:latest_sync_activity_at)
|
||||
end
|
||||
|
||||
def handle_completion_transition
|
||||
family.touch(:latest_sync_completed_at)
|
||||
end
|
||||
|
||||
def window_valid
|
||||
if window_start_date && window_end_date && window_start_date > window_end_date
|
||||
errors.add(:window_end_date, "must be greater than window_start_date")
|
||||
end
|
||||
end
|
||||
|
||||
def family
|
||||
if syncable.is_a?(Family)
|
||||
syncable
|
||||
else
|
||||
syncable.family
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue