Class: SpreeCmCommissioner::VehicleUpdater

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

Instance Method Summary collapse

Instance Method Details

#callObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/interactors/spree_cm_commissioner/vehicle_updater.rb', line 3

def call
  vehicle = context.vehicle
  data    = context.data

  option_value_ids = data[:option_value_ids] || []
  option_type_ids  = data[:option_type_ids] || []

  ActiveRecord::Base.transaction do
    update_vehicle!(vehicle, data[:vehicle_attributes])
    update_amenities!(vehicle, option_value_ids, option_type_ids)
  end

  context.message = I18n.t('views.transit.vehicles.update_success')
rescue StandardError => e
  context.fail!(message: "Failed to update vehicle: #{e.message}")
end