Class: SpreeCmCommissioner::Integrations::StadiumXV1::SyncStrategies::FullSyncStrategy

Inherits:
Object
  • Object
show all
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

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

#callObject



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