25 lines
		
	
	
	
		
			751 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
	
		
			751 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| from data import model
 | |
| from data.database import User
 | |
| from app import billing as stripe
 | |
| from data.plans import get_plan
 | |
| 
 | |
| def get_private_allowed(customer):
 | |
|   if not customer.stripe_id:
 | |
|     return 0
 | |
| 
 | |
|   subscription = stripe.Customer.retrieve(customer.stripe_id).get('subscription', None)
 | |
|   if subscription is None:
 | |
|     return 0
 | |
| 
 | |
|   plan = get_plan(subscription.plan.id)
 | |
|   return plan['privateRepos']
 | |
| 
 | |
| # Find customers who have more private repositories than their plans allow
 | |
| users = User.select()
 | |
| 
 | |
| usage = [(user.username, model.user.get_private_repo_count(user.username),
 | |
|           get_private_allowed(user)) for user in users]
 | |
| 
 | |
| for username, used, allowed in usage:
 | |
|   if used > allowed:
 | |
|     print('Violation: %s %s > %s' % (username, used, allowed))
 |