Class: RoomQuickRevisionWorker

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Job, Workers::StatusBroadcastable
Defined in:
app/workers/room_quick_revision_worker.rb

Instance Attribute Summary

Attributes included from Workers::StatusBroadcastable

#broadcast_status_updates

Instance Method Summary collapse

Methods included from Workers::StatusBroadcastable::Overrides

#at, #store, #total

Instance Method Details

#perform(options = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/workers/room_quick_revision_worker.rb', line 6

def perform(options = {})
  options = options.with_indifferent_access
  itemizable_klass = options[:itemizable_type].constantize
  itemizable = itemizable_klass.find(options[:itemizable_id])
  rooms_quick_reviser = MultiRoomModel::RoomsQuickReviser.new(itemizable, keep_plan: options[:keep_plan].to_b)

  rooms_quick_reviser.quick_revise(room_configuration_ids: options[:room_configuration_ids]) do |num, reported_total, msg|
    reported_total ||= 0
    num ||= 0
    total reported_total
    at(num, msg)
  end
  if rooms_quick_reviser.errors.present?
    store error_message: rooms_quick_reviser.errors.to_sentence.capitalize
  else
    store info_message: "Quick revision complete"
  end
  store redirect_to: options[:redirect_to] || polymorphic_path(itemizable)

end