initial creation
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
import click
|
||||
|
||||
from snakeeyes.app import create_app
|
||||
from snakeeyes.extensions import db
|
||||
from snakeeyes.blueprints.billing.gateways.stripecom import Plan as PaymentPlan
|
||||
|
||||
# Create an app context for the database connection.
|
||||
app = create_app()
|
||||
db.app = app
|
||||
|
||||
|
||||
@click.group()
|
||||
def cli():
|
||||
""" Perform various tasks with Stripe's API. """
|
||||
pass
|
||||
|
||||
|
||||
@click.command()
|
||||
def sync_plans():
|
||||
"""
|
||||
Sync (upsert) STRIPE_PLANS to Stripe.
|
||||
|
||||
:return: None
|
||||
"""
|
||||
if app.config['STRIPE_PLANS'] is None:
|
||||
return None
|
||||
|
||||
for _, value in app.config['STRIPE_PLANS'].items():
|
||||
plan = PaymentPlan.retrieve(value.get('id'))
|
||||
|
||||
if plan:
|
||||
PaymentPlan.update(id=value.get('id'),
|
||||
name=value.get('name'),
|
||||
metadata=value.get('metadata'),
|
||||
statement_descriptor=value.get(
|
||||
'statement_descriptor'))
|
||||
else:
|
||||
PaymentPlan.create(**value)
|
||||
|
||||
return None
|
||||
|
||||
|
||||
@click.command()
|
||||
@click.argument('plan_ids', nargs=-1)
|
||||
def delete_plans(plan_ids):
|
||||
"""
|
||||
Delete 1 or more plans from Stripe.
|
||||
|
||||
:return: None
|
||||
"""
|
||||
for plan_id in plan_ids:
|
||||
PaymentPlan.delete(plan_id)
|
||||
|
||||
return None
|
||||
|
||||
|
||||
@click.command()
|
||||
def list_plans():
|
||||
"""
|
||||
List all existing plans on Stripe.
|
||||
|
||||
:return: Stripe plans
|
||||
"""
|
||||
click.echo(PaymentPlan.list())
|
||||
|
||||
|
||||
cli.add_command(sync_plans)
|
||||
cli.add_command(delete_plans)
|
||||
cli.add_command(list_plans)
|
||||
Reference in New Issue
Block a user