Class: SpreeCmCommissioner::TripCloneCreator

Inherits:
BaseInteractor show all
Defined in:
app/interactors/spree_cm_commissioner/trip_clone_creator.rb

Instance Method Summary collapse

Instance Method Details

#callObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/interactors/spree_cm_commissioner/trip_clone_creator.rb', line 6

def call
  ActiveRecord::Base.transaction do
    cloned_product = create_cloned_product(original_trip.product)
    cloned_trip    = create_cloned_trip(original_trip, cloned_product)

    departure_time_from_stops(cloned_trip)
    calculate_trip_duration(cloned_trip)

    cloned_trip.save!
    context.cloned_trip = cloned_trip
    clone_variants(original_trip, cloned_trip)
  end
rescue StandardError => e
  context.fail!(message: e.message)
end