From 29f1de49083d57895bdf8f999448678934fbeffc Mon Sep 17 00:00:00 2001 From: jessib Date: Thu, 11 Apr 2013 10:57:00 -0700 Subject: Much more efficient way to get a customer's subscriptions, thanks to http://stackoverflow.com/questions/15910980/retrieving-a-braintree-customers-subscriptions --- billing/app/controllers/customer_controller.rb | 11 +---------- 1 file changed, 1 insertion(+), 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 -- cgit v1.2.3