26 lines
751 B
Python
26 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))
|