Class: Projects::BackersController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/projects/backers_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'app/controllers/projects/backers_controller.rb', line 48

def create
  @title = t('projects.backers.create.title')
  @backer.user = current_user
  @backer.reward_id = nil if params[:backer][:reward_id].to_i == 0
  create! do |success,failure|
    failure.html do
      flash[:failure] = t('projects.backers.review.error')
      return redirect_to new_project_backer_path(@project)
    end
    success.html do
      resource.update_current_billing_info
      flash[:notice] = nil
      session[:thank_you_backer_id] = @backer.id
      return render :create
    end
  end
  @thank_you_id = @project.id
end

#credits_checkoutObject



67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'app/controllers/projects/backers_controller.rb', line 67

def credits_checkout
  if current_user.credits < @backer.value
    flash[:failure] = t('projects.backers.checkout.no_credits')
    return redirect_to new_project_backer_path(@backer.project)
  end

  unless @backer.confirmed?
    @backer.update_attributes({ payment_method: 'Credits' })
    @backer.confirm!
  end
  flash[:success] = t('projects.backers.checkout.success')
  redirect_to project_backer_path(project_id: parent.id, id: resource.id)
end

#indexObject



17
18
19
# File 'app/controllers/projects/backers_controller.rb', line 17

def index
  render collection
end

#newObject



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'app/controllers/projects/backers_controller.rb', line 26

def new
  unless parent.online?
    flash[:failure] = t('projects.back.cannot_back')
    return redirect_to :root
  end

  @create_url = ::Configuration[:secure_review_host] ?
    project_backers_url(@project, {host: ::Configuration[:secure_review_host], protocol: 'https'}) :
    project_backers_path(@project)

  @title = t('projects.backers.new.title', name: @project.name)
  @backer = @project.backers.new(user: current_user)
  empty_reward = Reward.new(minimum_value: 0, description: t('projects.backers.new.no_reward'))
  @rewards = [empty_reward] + @project.rewards.order(:minimum_value)

  # Select
  if params[:reward_id] && (@selected_reward = @project.rewards.find params[:reward_id]) && !@selected_reward.sold_out?
    @backer.reward = @selected_reward
    @backer.value = "%0.0f" % @selected_reward.minimum_value
  end
end

#showObject



21
22
23
24
# File 'app/controllers/projects/backers_controller.rb', line 21

def show
  @title = t('projects.backers.show.title')
  session[:thank_you_backer_id] = nil
end

#update_infoObject



11
12
13
14
15
# File 'app/controllers/projects/backers_controller.rb', line 11

def update_info
  resource.update_attributes(params[:backer])
  resource.update_user_billing_info
  render json: {message: 'updated'}
end