Class: RubyEventStore::Outbox::SidekiqProducer

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_event_store/outbox/sidekiq_producer.rb

Instance Method Summary collapse

Instance Method Details

#call(klass, args) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/ruby_event_store/outbox/sidekiq_producer.rb', line 10

def call(klass, args)
  item = { "args" => args.map(&:to_h).map { |h| h.transform_keys(&:to_s) }, "class" => klass }
  normalized_item = sidekiq_client.__send__(:normalize_item, item)
  payload =
    sidekiq_client
      .middleware
      .invoke(normalized_item["class"], normalized_item, normalized_item["queue"], Sidekiq.redis_pool) do
        normalized_item
      end
  if payload
    Repository::Record.create!(
      format: SIDEKIQ5_FORMAT,
      split_key: payload.fetch("queue"),
      payload: payload.to_json,
    )
  end
end