Class: PinterestConversionWorker

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Worker
Defined in:
app/workers/pinterest_conversion_worker.rb

Overview

Thin worker that delegates to Pinterest::ConversionReporter.

Enqueue after an order is invoiced or an opportunity qualifies, mirroring
the existing GoogleOfflineConversionWorker pattern.

Examples:

Enqueue for an order

PinterestConversionWorker.perform_async(order_id: order.id, type: "order")

Enqueue for an opportunity

PinterestConversionWorker.perform_async(order_id: opportunity.id, type: "opportunity")

Instance Method Summary collapse

Instance Method Details

#perform(order_id:, type: "order") ⇒ Object

Parameters:

  • order_id (Integer)

    the Order or Opportunity ID

  • type (String) (defaults to: "order")

    "order" or "opportunity"



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/workers/pinterest_conversion_worker.rb', line 21

def perform(order_id:, type: "order")
  reporter = Pinterest::ConversionReporter.new

  case type
  when "order"
    order = Order.find_by(id: order_id)
    return unless order

    reporter.send_order_conversion(order)
  when "opportunity"
    opportunity = Opportunity.find_by(id: order_id)
    return unless opportunity

    reporter.send_opportunity_conversion(opportunity)
  else
    Rails.logger.error "PinterestConversionWorker: Unknown type '#{type}' for id #{order_id}"
  end
end