Class: Spree::Mixpanel::EventHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/spree_mixpanel/mixpanel.rb

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ EventHandler

Returns a new instance of EventHandler.



5
6
7
8
9
10
11
12
# File 'lib/spree_mixpanel/mixpanel.rb', line 5

def initialize(opts={})
  @opts = opts
  @event_opts = opts["event_opts"]
  @event = opts["event"].try(:to_sym) || :track
  @user_email = opts["user_email"]
  @order_id = opts["order_id"]
  @event_name = opts["event_name"]
end

Instance Method Details

#handle_eventObject



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/spree_mixpanel/mixpanel.rb', line 14

def handle_event
  if has_sidekiq?
    begin
      SpreeMixpanelWorker.perform_async(opts)
    rescue Redis::CannotConnectError
      Rails.logger.info "Cannot connect with Redis"
    end
  else
    mixpanel_perform
  end
end

#mixpanel_performObject



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/spree_mixpanel/mixpanel.rb', line 26

def mixpanel_perform
  case event
  when :user
    MixpanelTracker.track_user(user_email)
  when :order
    MixpanelTracker.track_order(order_id)
  when :charge
    MixpanelTracker.track_charge(order_id)
  when :track
    MixpanelTracker.track_event(user_email, event_name, event_opts)
  end
end