Create new transaction log table to track user conversions

This commit is contained in:
r888888888
2014-02-10 13:13:58 -08:00
parent 09e47607cc
commit cc9b5a0c61
7 changed files with 150 additions and 1 deletions

View File

@@ -12,6 +12,7 @@ module Admin
sanitize_params!
@user.level = params[:user][:level]
@user.inviter_id = CurrentUser.id
TransactionLogItem.record_account_upgrade(@user)
@user.save
redirect_to edit_admin_user_path(@user), :notice => "User updated"
end

View File

@@ -59,6 +59,12 @@ class UsersController < ApplicationController
respond_with(@user)
end
def upgrade_information
unless CurrentUser.user.is_anonymous?
TransactionLogItem.record_account_upgrade_view(CurrentUser.user, request.referer)
end
end
def upgrade
@user = User.find(params[:id])

View File

@@ -0,0 +1,27 @@
class TransactionLogItem < ActiveRecord::Base
attr_accessible :category, :data, :user_id
validates_inclusion_of :category, :in => %w(
account_upgrade_basic_to_gold
account_upgrade_basic_to_platinum
account_upgrade_gold_to_platinum
account_upgrade_view
)
def self.record_account_upgrade_view(user, referrer)
create(:category => "account_upgrade_view", :user_id => user.id, :data => referrer)
end
def self.record_account_upgrade(user)
attributes = {:user_id => user.id}
if user.level_was < User::Levels::PLATINUM && user.level == User::Levels::PLATINUM
attributes[:category] = "account_upgrade_gold_to_platinum"
elsif user.level_was < User::Levels::GOLD && user.level == User::Levels::GOLD
attributes[:category] = "account_upgrade_basic_to_gold"
elsif user.level_was < User::Levels::GOLD && user.level == User::Levels::PLATINUM
attributes[:category] = "account_upgrade_basic_to_platinum"
end
create(attributes)
end
end