summaryrefslogtreecommitdiff
path: root/billing/app
diff options
context:
space:
mode:
authorjessib <jessib@leap.se>2013-03-26 12:53:35 -0700
committerAzul <azul@leap.se>2013-07-17 10:47:12 +0200
commit3420d624916eb31396af2adca6562e38173c689d (patch)
treec38635d55b5b1a293e91e5784ed6127ea27c3b11 /billing/app
parent4a334ce6f6163c2bfa11f3e2146b9d0b765b6d7b (diff)
More working subscriptions.
Diffstat (limited to 'billing/app')
-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
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