shell.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import flask_migrate
  2. import stripe
  3. from IPython import embed
  4. from sqlalchemy_utils import create_database, database_exists, drop_database
  5. from app.config import DB_URI
  6. from app.models import *
  7. from app.oauth_models import ScopeE
  8. from server import create_app
  9. def create_db():
  10. if not database_exists(DB_URI):
  11. LOG.debug("db not exist, create database")
  12. create_database(DB_URI)
  13. # Create all tables
  14. # Use flask-migrate instead of db.create_all()
  15. flask_migrate.upgrade()
  16. scope_name = Scope.create(name=ScopeE.NAME.value)
  17. db.session.add(scope_name)
  18. scope_email = Scope.create(name=ScopeE.EMAIL.value)
  19. db.session.add(scope_email)
  20. db.session.commit()
  21. def add_real_data():
  22. """after the db is reset, add some accounts
  23. TODO: remove this after adding alembic"""
  24. user = User.create(email="nguyenkims@gmail.com", name="Son GM", activated=True)
  25. user.set_password("password")
  26. db.session.commit()
  27. # Create a client
  28. client1 = Client.create_new(name="Demo", user_id=user.id)
  29. client1.oauth_client_id = "client-id"
  30. client1.oauth_client_secret = "client-secret"
  31. db.session.commit()
  32. RedirectUri.create(client_id=client1.id, uri="http://demo.sl.meo.ovh/callback")
  33. db.session.commit()
  34. user2 = User.create(email="nguyenkims@hotmail.com", name="Son HM", activated=True)
  35. user2.set_password("password")
  36. db.session.commit()
  37. def change_password(user_id, new_password):
  38. user = User.get(user_id)
  39. user.set_password(new_password)
  40. db.session.commit()
  41. def reset_db():
  42. if database_exists(DB_URI):
  43. drop_database(DB_URI)
  44. create_db()
  45. add_real_data()
  46. app = create_app()
  47. with app.app_context():
  48. embed()