Files
sure/app/models/snaptrade_item/sync_complete_event.rb
LPW a83f70425f Add SnapTrade brokerage integration with full trade history support (#737)
* Introduce SnapTrade integration with models, migrations, views, and activity processing logic.

* Refactor SnapTrade activities processing: improve activity fetching flow, handle pending states, and update UI elements for enhanced user feedback.

* Update Brakeman ignore file to include intentional redirect for SnapTrade OAuth portal.

* Refactor SnapTrade models, views, and processing logic: add currency extraction helper, improve pending state handling, optimize migration checks, and enhance user feedback in UI.

* Remove encryption for SnapTrade `snaptrade_user_id`, as it is an identifier, not a secret.

* Introduce `SnaptradeConnectionCleanupJob` to asynchronously handle SnapTrade connection cleanup and improve i18n for SnapTrade item status messages.

* Update SnapTrade encryption: make `snaptrade_user_secret` non-deterministic to enhance security.

---------

Signed-off-by: Juan José Mata <juanjo.mata@gmail.com>
Co-authored-by: luckyPipewrench <luckypipewrench@proton.me>
Co-authored-by: Juan José Mata <juanjo.mata@gmail.com>
2026-01-22 20:52:49 +01:00

26 lines
665 B
Ruby

class SnaptradeItem::SyncCompleteEvent
attr_reader :snaptrade_item
def initialize(snaptrade_item)
@snaptrade_item = snaptrade_item
end
def broadcast
# Update UI with latest account data
snaptrade_item.accounts.each do |account|
account.broadcast_sync_complete
end
# Update the SnapTrade item view
snaptrade_item.broadcast_replace_to(
snaptrade_item.family,
target: "snaptrade_item_#{snaptrade_item.id}",
partial: "snaptrade_items/snaptrade_item",
locals: { snaptrade_item: snaptrade_item }
)
# Let family handle sync notifications
snaptrade_item.family.broadcast_sync_complete
end
end