diff options
Diffstat (limited to 'billing/app')
-rw-r--r-- | billing/app/controllers/subscription_controller.rb | 17 | ||||
-rw-r--r-- | billing/app/controllers/subscriptions_controller.rb | 15 | ||||
-rw-r--r-- | billing/app/views/subscription/new.html.haml | 4 | ||||
-rw-r--r-- | billing/app/views/subscriptions/create.html.haml | 8 | ||||
-rw-r--r-- | billing/app/views/subscriptions/new.html.haml | 14 |
5 files changed, 37 insertions, 21 deletions
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 |