diff options
author | jessib <jessib@leap.se> | 2013-04-09 13:51:02 -0700 |
---|---|---|
committer | Azul <azul@leap.se> | 2013-07-17 10:47:12 +0200 |
commit | 981179a58d47589f8444347856c1e8acce1f91d1 (patch) | |
tree | d5c558e289ddd8160fc97ae986b0a1dea5feb003 /billing/app/controllers/customer_controller.rb | |
parent | bee5c4a93f6bf664609673d7e703476f15147fe3 (diff) |
Display of subscription information on a customer's edit page. It is *super* slow. Posted stackoverflow question as not clear if there is more efficient way to get this information via braintree API.
Diffstat (limited to 'billing/app/controllers/customer_controller.rb')
-rw-r--r-- | billing/app/controllers/customer_controller.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/billing/app/controllers/customer_controller.rb b/billing/app/controllers/customer_controller.rb index 9ad6d93..06d1cb1 100644 --- a/billing/app/controllers/customer_controller.rb +++ b/billing/app/controllers/customer_controller.rb @@ -19,6 +19,16 @@ 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 else # TODO: will want to have case for admins, presumably access_denied |