Guest User

Untitled

a guest
Oct 21st, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. module StripeCustomersHelper
  2.  
  3. PLANS = [
  4. :new_member_monthly,
  5. :current_member_monthly,
  6. :new_member_annual,
  7. :current_member_annual
  8. ]
  9.  
  10. def get_stripe_customers
  11. each_customer do |customer|
  12. unless has_member_subscription?(customer)
  13. puts customer.email
  14. end
  15. end
  16. end
  17.  
  18. private
  19.  
  20. def has_member_subscription?(customer)
  21. subscription_presence = false
  22. card_presence = false
  23.  
  24. customer.sources.data.each do |source|
  25. if source.object == 'card'
  26. card_presence = true
  27. break
  28. end
  29. end
  30.  
  31. return true unless card_presence
  32.  
  33. customer.subscriptions.data.each do |subscription|
  34. if PLANS.include?(subscription.plan.id.to_sym)
  35. subscription_presence = true
  36. break
  37. end
  38. end
  39.  
  40. subscription_presence
  41. end
  42.  
  43. def each_customer
  44. starting_after = nil
  45. loop do
  46. customers = Stripe::Customer.all(limit: 100, starting_after: starting_after)
  47. break if customers.data.length == 0
  48. customers.each do |customer|
  49. yield customer
  50. end
  51. starting_after = customers.data.last.id
  52. end
  53. end
  54.  
  55. end
Add Comment
Please, Sign In to add comment