Class: SpreeCmCommissioner::Integrations::StadiumXV1::SyncStrategies::FullSyncStrategy
- Inherits:
-
Object
- Object
- SpreeCmCommissioner::Integrations::StadiumXV1::SyncStrategies::FullSyncStrategy
- Defined in:
- app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/full_sync_strategy.rb
Overview
Full sync strategy - syncs all matches from external system.
Runs on a schedule (e.g., daily) to fetch and update all matches from Stadium X V1 API. After full sync, IncrementalSyncStrategy will sync zone data one match at a time.
Example flow:
1. Full sync runs at 2:00 AM
- Fetches all matches from Stadium X V1
- Creates/updates match records
- Creates integration mappings
2. Incremental sync runs every 10 seconds
- Syncs zone data for one match per interval
- Keeps data fresh without overwhelming the system
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(client:, integration:) ⇒ FullSyncStrategy
constructor
A new instance of FullSyncStrategy.
Constructor Details
#initialize(client:, integration:) ⇒ FullSyncStrategy
Returns a new instance of FullSyncStrategy.
17 18 19 20 21 |
# File 'app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/full_sync_strategy.rb', line 17 def initialize(client:, integration:) @client = client @integration = integration @sync_result = ::SpreeCmCommissioner::Integrations::Base::SyncResult.new end |
Instance Method Details
#call ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'app/services/spree_cm_commissioner/integrations/stadium_x_v1/sync_strategies/full_sync_strategy.rb', line 23 def call begin Polling::SyncMatches.new( client: @client, integration: @integration, sync_result: @sync_result ).call rescue StandardError => e @sync_result.record_error(e) end @sync_result end |