Commit fdb71218

mo khan <mo@mokhan.ca>
2013-05-05 06:19:22
include user info when connecting to mixpanel
1 parent 90a4a5c
Changed files (3)
app/controllers/creations_controller.rb
@@ -3,7 +3,7 @@ class CreationsController < ApplicationController
 
   def index
     @creations = FindAllCreationsQuery.new.fetch(params)
-    MixPanel.track "Viewed Home Page", {}, @request_env
+    MixPanel.track "Viewed Home Page", {}, @request_env, current_user
   end
 
   def show
app/models/mix_panel.rb
@@ -1,5 +1,5 @@
 class MixPanel
-  def self.track(name, properties, env)
+  def self.track(name, properties, env, user = nil)
     # Notice we are using the 'mixpanel' queue
     Delayed::Job.enqueue MixpanelWorker.new(name, properties, env), queue: 'mixpanel'
   end
app/services/commands/mixpanel_worker.rb
@@ -1,9 +1,11 @@
-class MixpanelWorker < Struct.new(:name, :properties, :request_env)
+class MixpanelWorker < Struct.new(:name, :properties, :request_env, :user)
   MIXPANEL_TOKEN = "866e150970370a95c77cf6293dbc02c5"
 
   def perform
     return unless Rails.env.production?
+    p "mixpanel: #{name}, #{properties}, #{request_env}, #{user}"
     @mixpanel = Mixpanel::Tracker.new(MIXPANEL_TOKEN, { :env => request_env })
     @mixpanel.track(name, properties)
+    @mixpanel.set user.id, { :created => user.created_at, :name => user.name, :email => user.email } if user
   end
 end