summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjessib <jessib@leap.se>2013-04-11 10:57:00 -0700
committerAzul <azul@leap.se>2013-07-17 10:47:12 +0200
commit29f1de49083d57895bdf8f999448678934fbeffc (patch)
tree628dc72d870070e832a429f44334e98892a8e64e
parent981179a58d47589f8444347856c1e8acce1f91d1 (diff)
Much more efficient way to get a customer's subscriptions, thanks to http://stackoverflow.com/questions/15910980/retrieving-a-braintree-customers-subscriptions
-rw-r--r--billing/app/controllers/customer_controller.rb11
1 files changed, 1 insertions, 10 deletions
diff --git a/billing/app/controllers/customer_controller.rb b/billing/app/controllers/customer_controller.rb
index 06d1cb1..a16e3fe 100644
--- a/billing/app/controllers/customer_controller.rb
+++ b/billing/app/controllers/customer_controller.rb
@@ -19,16 +19,7 @@ class CustomerController < BillingBaseController
@tr_data = Braintree::TransparentRedirect.
update_customer_data(:redirect_url => confirm_customer_url,
:customer_id => params[:id])
- @subscriptions = Array.new
-
- # SUPER SLOW :(
- # asked question to see about optimizing: http://stackoverflow.com/questions/15910980/retrieving-a-braintree-customers-subscriptions
- transactions = @braintree_data.transactions
- transactions.each do |cust_transaction|
- transaction = Braintree::Transaction.find(cust_transaction.id) if (cust_transaction and cust_transaction.id) # why is cust_transaction nil in cases?
- subscription = Braintree::Subscription.find(transaction.subscription_id) if (transaction and transaction.subscription_id)
- @subscriptions << subscription if subscription and subscription.status == 'Active'
- end
+ @subscriptions = @braintree_data.credit_cards.map(&:subscriptions).flatten
else
# TODO: will want to have case for admins, presumably
access_denied