summaryrefslogtreecommitdiff
path: root/billing
diff options
context:
space:
mode:
Diffstat (limited to 'billing')
-rw-r--r--billing/app/controllers/subscription_controller.rb17
-rw-r--r--billing/app/controllers/subscriptions_controller.rb15
-rw-r--r--billing/app/views/subscription/new.html.haml4
-rw-r--r--billing/app/views/subscriptions/create.html.haml8
-rw-r--r--billing/app/views/subscriptions/new.html.haml14
-rw-r--r--billing/config/routes.rb3
6 files changed, 38 insertions, 23 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
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