Class: OpenaiAdsConversionWorker
- Inherits:
-
Object
- Object
- OpenaiAdsConversionWorker
- Includes:
- Sidekiq::Job
- Defined in:
- app/workers/openai_ads_conversion_worker.rb
Overview
Thin Sidekiq worker that delegates to OpenaiAds::ConversionReporter.
Enqueue from order/opportunity lifecycle hooks (after invoiced /
qualified), mirroring the existing GoogleOfflineConversionWorker
and PinterestConversionWorker patterns.
Sidekiq + kwargs caveat. Job args are JSON-serialized into Redis
and unmarshalled back into a plain Array; Ruby keyword arguments don't
survive the round-trip — they arrive as a positional Hash, and a
perform(id:, type:) signature raises ArgumentError: wrong number of arguments (given 1, expected 0; required keyword: id) on dispatch
(AppSignal #5213). Use positional args.
Instance Method Summary collapse
Instance Method Details
#perform(id, type = 'order') ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'app/workers/openai_ads_conversion_worker.rb', line 29 def perform(id, type = 'order') reporter = OpenaiAds::ConversionReporter.new case type when 'order' order = Order.find_by(id: id) return unless order reporter.send_order_conversion(order) when 'opportunity' opportunity = Opportunity.find_by(id: id) return unless opportunity reporter.send_opportunity_conversion(opportunity) else Rails.logger.error "OpenaiAdsConversionWorker: Unknown type '#{type}' for id #{id}" end end |