summaryrefslogtreecommitdiff
path: root/billing/app/controllers
diff options
context:
space:
mode:
authorjessib <jessib@leap.se>2013-04-23 11:47:09 -0700
committerAzul <azul@leap.se>2013-07-17 10:47:13 +0200
commitc2330394daf004974656d8240ca6c83567401595 (patch)
treebbf9dace2344efc68c3a6b97921309caeed922e4 /billing/app/controllers
parent416ae5da6b87c78fcf49592885a916e9ce4f0904 (diff)
Basic functionality to edit credit card on file.
Diffstat (limited to 'billing/app/controllers')
-rw-r--r--billing/app/controllers/credit_card_info_controller.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/billing/app/controllers/credit_card_info_controller.rb b/billing/app/controllers/credit_card_info_controller.rb
new file mode 100644
index 0000000..99bf5cf
--- /dev/null
+++ b/billing/app/controllers/credit_card_info_controller.rb
@@ -0,0 +1,27 @@
+class CreditCardInfoController < ApplicationController
+ before_filter :authorize
+
+ def edit
+ @credit_card = Braintree::CreditCard.find(params[:id])
+ customer = Customer.find_by_user_id(current_user.id)
+ if customer and customer.braintree_customer_id == @credit_card.customer_id
+ @tr_data = Braintree::TransparentRedirect.
+ update_credit_card_data(:redirect_url => confirm_credit_card_info_url,
+ :payment_method_token => @credit_card.token)
+ else
+ access_denied
+ end
+
+ end
+
+ def confirm
+ @result = Braintree::TransparentRedirect.confirm(request.query_string)
+ if @result.success?
+ render :action => "confirm"
+ else
+ @credit_card = Braintree::CreditCard.find(@result.params[:payment_method_token])
+ render :action => "edit"
+ end
+ end
+
+end