From 3420d624916eb31396af2adca6562e38173c689d Mon Sep 17 00:00:00 2001 From: jessib Date: Tue, 26 Mar 2013 12:53:35 -0700 Subject: More working subscriptions. --- billing/app/controllers/subscription_controller.rb | 17 ----------------- billing/app/controllers/subscriptions_controller.rb | 15 +++++++++++++++ billing/app/views/subscription/new.html.haml | 4 ---- billing/app/views/subscriptions/create.html.haml | 8 ++++++++ billing/app/views/subscriptions/new.html.haml | 14 ++++++++++++++ billing/config/routes.rb | 3 +-- 6 files changed, 38 insertions(+), 23 deletions(-) delete mode 100644 billing/app/controllers/subscription_controller.rb create mode 100644 billing/app/controllers/subscriptions_controller.rb delete mode 100644 billing/app/views/subscription/new.html.haml create mode 100644 billing/app/views/subscriptions/create.html.haml create mode 100644 billing/app/views/subscriptions/new.html.haml diff --git a/billing/app/controllers/subscription_controller.rb b/billing/app/controllers/subscription_controller.rb deleted file mode 100644 index d284e78..0000000 --- a/billing/app/controllers/subscription_controller.rb +++ /dev/null @@ -1,17 +0,0 @@ -class SubscriptionController < ApplicationController - before_filter :authorize - - def new - customer = Customer.find_by_user_id(current_user.id) - braintree_customer = Braintree::Customer.find(customer.braintree_customer_id) - payment_method_token = customer.default_credit_card.token - @result = Braintree::Subscription.create( :payment_method_token => payment_method_token, :plan_id => "ttw2" ) #todo obviously don't hardcode payment id - debugger - - end - - def confirm - - end - -end diff --git a/billing/app/controllers/subscriptions_controller.rb b/billing/app/controllers/subscriptions_controller.rb new file mode 100644 index 0000000..fcf5ecb --- /dev/null +++ b/billing/app/controllers/subscriptions_controller.rb @@ -0,0 +1,15 @@ +class SubscriptionsController < ApplicationController + before_filter :authorize + + def new + customer = Customer.find_by_user_id(current_user.id) + @payment_method_token = customer.default_credit_card.token + @plans = Braintree::Plan.all + + end + + def create + @result = Braintree::Subscription.create( :payment_method_token => params[:payment_method_token], :plan_id => params[:plan_id] ) + end + +end diff --git a/billing/app/views/subscription/new.html.haml b/billing/app/views/subscription/new.html.haml deleted file mode 100644 index d94c235..0000000 --- a/billing/app/views/subscription/new.html.haml +++ /dev/null @@ -1,4 +0,0 @@ -%h1 - Subscribe to plan -- if @result #todo - = @result diff --git a/billing/app/views/subscriptions/create.html.haml b/billing/app/views/subscriptions/create.html.haml new file mode 100644 index 0000000..e0585ab --- /dev/null +++ b/billing/app/views/subscriptions/create.html.haml @@ -0,0 +1,8 @@ +- if @result.success? + %h1 + Subscription Status + = @result.subscription.status +- else + %h1 + Error: + = @result.message \ No newline at end of file diff --git a/billing/app/views/subscriptions/new.html.haml b/billing/app/views/subscriptions/new.html.haml new file mode 100644 index 0000000..dba5f53 --- /dev/null +++ b/billing/app/views/subscriptions/new.html.haml @@ -0,0 +1,14 @@ +- if @payment_method_token + %h1 + Subscribe to plan + = #currently just one plan + = @plans[0].name + = number_to_currency(@plans[0].price) + = simple_form_for :subscription, :url => :subscriptions do |f| + = hidden_field_tag :payment_method_token, @payment_method_token + = hidden_field_tag :plan_id, @plans[0].id + = f.submit 'Subscribe' +- else + You must store a customer in braintree before subscribing to a plan + %p + = link_to 'Create a new braintree customer', new_customer_path diff --git a/billing/config/routes.rb b/billing/config/routes.rb index aa436ba..b5ccf6e 100644 --- a/billing/config/routes.rb +++ b/billing/config/routes.rb @@ -9,8 +9,7 @@ Rails.application.routes.draw do match 'customer/confirm' => 'customer#confirm', :as => :confirm_customer match 'credit_card_info/confirm' => 'credit_card_info#confirm', :as => :confirm_credit_card_info - match 'subscription/new' => 'subscription#new', :as => :new_subscription - match 'subscription/confirm' => 'subscription#confirm', :as => :confirm_subscription + resources :subscriptions, :only => [:new, :create, :index, :show, :update, :destroy] #match 'transactions/:product_id/new' => 'transactions#new', :as => :new_transaction #match 'transactions/confirm/:product_id' => 'transactions#confirm', :as => :confirm_transaction -- cgit v1.2.3