Class: ReferralBox::DashboardController

Inherits:
ActionController::Base
  • Object
show all
Defined in:
app/controllers/referral_box/dashboard_controller.rb

Instance Method Summary collapse

Instance Method Details

#analyticsObject



48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'app/controllers/referral_box/dashboard_controller.rb', line 48

def analytics
  @total_clicks = ReferralBox::ReferralLog.clicked_count
  @total_conversions = ReferralBox::ReferralLog.converted_count
  @conversion_rate = ReferralBox::ReferralLog.conversion_rate
  
  @referrals_by_device = ReferralBox::ReferralLog.group(:device_type).count
  @referrals_by_browser = ReferralBox::ReferralLog.group(:browser).count
  
  @daily_clicks = ReferralBox::ReferralLog.group("DATE(clicked_at)")
                                        .count
                                        .sort_by { |date, _| date }
                                        .last(30)
end

#indexObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/controllers/referral_box/dashboard_controller.rb', line 10

def index
  @total_users = user_class.count
  @total_transactions = ReferralBox::Transaction.count
  @total_referrals = ReferralBox::ReferralLog.count
  @conversion_rate = ReferralBox::ReferralLog.conversion_rate
  
  @recent_transactions = ReferralBox::Transaction.includes(:user)
                                               .order(created_at: :desc)
                                               .limit(10)
  
  @top_users = user_class.joins(:referral_box_transactions)
                        .group("users.id")
                        .order("SUM(referral_box_transactions.points) DESC")
                        .limit(10)
end

#referralsObject



44
45
46
# File 'app/controllers/referral_box/dashboard_controller.rb', line 44

def referrals
  @referrals = safe_paginate(ReferralBox::ReferralLog.order(clicked_at: :desc), 50)
end

#transactionsObject



39
40
41
42
# File 'app/controllers/referral_box/dashboard_controller.rb', line 39

def transactions
  @transactions = safe_paginate(ReferralBox::Transaction.includes(:user)
                                        .order(created_at: :desc), 50)
end

#userObject



31
32
33
34
35
36
37
# File 'app/controllers/referral_box/dashboard_controller.rb', line 31

def user
  @user = user_class.find(params[:id])
  @transactions = safe_paginate(@user.referral_box_transactions
                      .order(created_at: :desc), 20)
  @balance = ReferralBox.balance(@user)
  @tier = ReferralBox.tier(@user)
end

#usersObject



26
27
28
29
# File 'app/controllers/referral_box/dashboard_controller.rb', line 26

def users
  @users = safe_paginate(user_class.includes(:referral_box_transactions)
                    .order(created_at: :desc), 20)
end