Skip to content

Instantly share code, notes, and snippets.

@mattsoutherden
Created November 10, 2010 11:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mattsoutherden/670727 to your computer and use it in GitHub Desktop.
Save mattsoutherden/670727 to your computer and use it in GitHub Desktop.
class InviteController < ApplicationController
helper :google_optimizer, :content, :competitions, :deals
include ContentHelper
skip_before_filter :invitation_or_login_required, :only => [ :index, :invite_deal, :invite_competition]
def index
#########################################
## Generic links
#########################################
(return redirect_to :controller=>"cities", :action => 'index') if(params[:code].blank? || params[:code].length < 6) # code-length should be 6 or greater
str_code = params[:code]
utm_medium = str_code[-1,1]
utm_term = str_code[0..-2]
if @user
@user.add_referel(params[:code])
if utm_medium != "K"
redirect_to :controller=>"cities", :action => 'show', :city => @city.to_param, :utm_source => "user", :utm_medium => utm_medium.to_param, :utm_term => utm_term.to_param, :utm_content => "existing member"
else
redirect_to :controller=>"cities", :action => 'show', :city => @city.to_param, :utm_source => "user", :utm_term => utm_term.to_param, :utm_content => "existing member"
end
else
# when user is not logged in
session["code"] = params[:code]
if utm_medium != "K"
redirect_to "/#{@city.slug}/signup?utm_source=user&utm_medium=#{utm_medium}&utm_term=#{utm_term}&utm_content=new member"
else
redirect_to "/#{@city.slug}/signup?utm_source=user&utm_term=#{utm_term}&utm_content=new member"
end
end
end
def invite_deal
#########################################
## Deal specific links
#########################################
(return redirect_to :controller=>"cities", :action => 'index') if(params[:code].blank? || params[:deal_id].blank? || params[:code].length < 6) # code-length should be 6 or greater
str_code = params[:code]
utm_medium = str_code[-1,1]
utm_term = str_code[0..-2]
if @user
#redirect_to :controller=>"cities", :action => 'show', :city => @city.to_param, :deal_id => params[:deal_id].to_param, :code => params[:code].to_param
@user.add_referel(params[:code], params[:deal_id])
if utm_medium != "K"
redirect_to "/#{@city.slug}/deals/#{params[:deal_id]}?utm_source=user&utm_medium=#{utm_medium}&utm_term=#{utm_term}&utm_content=existing member"
else
redirect_to "/#{@city.slug}/deals/#{params[:deal_id]}?utm_source=user&utm_term=#{utm_term}&utm_content=existing member"
end
else
session["code"] = params[:code]
session["deal_id"] = params[:deal_id]
if utm_medium != "K"
redirect_to "/cities/signup?utm_source=user&utm_medium=#{utm_medium}&utm_term=#{utm_term}&utm_content=new member"
else
redirect_to "/cities/signup?utm_source=user&utm_term=#{utm_term}&utm_content=new member"
end
end
end
def invite_competition
#########################################
## competition links
#########################################
(return redirect_to :controller=>"competition", :action => 'competition_index') if(params[:code].blank? || params[:code].length < 6) # code-length should be 6 or greater
str_code = params[:code]
utm_medium = str_code[-1,1]
if utm_medium == 'F'
utm_medium = 'facebook'
elsif utm_medium == 'T'
utm_medium = 'twitter'
else
utm_medium = 'email'
end
utm_term = str_code[0..-2]
utm_campaign = params[:partner_id]
@content = get_competition(params[:partner_id])
utm_term = @content.start_time.strftime("%d%b%y")
if @user
#@user.add_referel(params[:code])
#if utm_medium != "K"
# redirect_to :controller=>"competition", :action => 'competition_error', :city => @city.to_param, :utm_source => "user", :utm_medium => utm_medium.to_param, :utm_term => utm_term.to_param, :utm_content => "existing member"
#else
# redirect_to :controller=>"competition", :action => 'competition_error', :city => @city.to_param, :utm_source => "user", :utm_term => utm_term.to_param, :utm_content => "existing member"
#end
#redirect_to :controller=>"competition", :action => 'competition_error', :city => @city.to_param, :partner_id => params[:partner_id] , :utm_source => "user", :utm_medium => utm_medium.to_param, :utm_term => utm_term.to_param, :utm_content => "existing member"
redirect_to city_competition_error_url(
params[:partner_id],
:utm_source => "user",
:utm_campaign => utm_campaign,
:utm_medium => utm_medium,
:utm_term => utm_term
)
else
# when user is not logged in
session["code"] = str_code
redirect_to city_competition_url(
params[:partner_id],
:utm_source => "user",
:utm_campaign => utm_campaign,
:utm_medium => utm_medium,
:utm_term => utm_term
)
#if utm_medium != "K"
# redirect_to "/#{@city.slug}/signup?utm_source=user&utm_medium=#{utm_medium}&utm_term=#{utm_term}&utm_content=new member"
#else
# redirect_to "/#{@city.slug}/signup?utm_source=user&utm_term=#{utm_term}&utm_content=new member"
#end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment