Class: SpreeCmCommissioner::Integrations::BookMeBusV1::Polling::SyncRouteStops
- Inherits:
-
Object
- Object
- SpreeCmCommissioner::Integrations::BookMeBusV1::Polling::SyncRouteStops
- Defined in:
- app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_route_stops.rb
Overview
SyncRouteStops synchronizes route stops from BookMeBus trips
Structure follows SyncZones pattern:
-
initialize: Setup integration and sync_result
-
call: Main entry point, validates inputs, orchestrates sync
-
private methods: Implementation details
Instance Method Summary collapse
- #call(external_trips:) ⇒ Object
-
#initialize(integration:, sync_result:, route:) ⇒ SyncRouteStops
constructor
A new instance of SyncRouteStops.
Constructor Details
#initialize(integration:, sync_result:, route:) ⇒ SyncRouteStops
Returns a new instance of SyncRouteStops.
9 10 11 12 13 14 |
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_route_stops.rb', line 9 def initialize(integration:, sync_result:, route:) @integration = integration @sync_result = sync_result @route = route @location_mappings = {} end |
Instance Method Details
#call(external_trips:) ⇒ Object
16 17 18 19 20 21 22 |
# File 'app/services/spree_cm_commissioner/integrations/book_me_bus_v1/polling/sync_route_stops.rb', line 16 def call(external_trips:) raise SpreeCmCommissioner::Integrations::SyncError, 'external_trips is required' if external_trips.blank? raise SpreeCmCommissioner::Integrations::SyncError, 'route is required' if @route.blank? preload_location_mappings! sync_route_stops!(external_trips) end |