Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask_sqlalchemy import SQLAlchemy
- from sqlalchemy.ext.automap import automap_base
- import graphene
- from graphene_sqlalchemy import SQLAlchemyObjectType
- # SQLAlchemy
- db = SQLAlchemy()
- Base = automap_base()
- def init_db(app):
- global Base, db
- db.init_app(app)
- Base.prepare(db.engine, reflect=True)
- # Get models
- def get_user_model():
- return Base.classes.AppUser
- def get_link_model():
- return Base.classes.Link
- def get_link_stack_model():
- return Base.classes.LinkStack
- def get_password_model():
- return Base.classes.Password
- # GraphQL Schema
- class UserObject(SQLAlchemyObjectType):
- class Meta:
- model = get_user_model()
- class LinkObject(SQLAlchemyObjectType):
- class Meta:
- model = get_link_model()
- class LinkStackObject(SQLAlchemyObjectType):
- class Meta:
- model = get_link_stack_model()
- class PasswordObject(SQLAlchemyObjectType):
- class Meta:
- model = get_password_model()
- class Query(graphene.ObjectType):
- users = graphene.List(UserObject)
- links = graphene.List(LinkObject)
- link_stacks = graphene.List(LinkStackObject)
- passwords = graphene.List(PasswordObject)
- def resolve_users(self, info):
- query = UserObject.get_query(info)
- return query.all()
- def resolve_links(self, info):
- query = LinkObject.get_query(info)
- return query.all()
- def resolve_link_stacks(self, info):
- query = LinkStackObject.get_query(info)
- return query.all()
- def resolve_passwords(self, info):
- query = PasswordObject.get_query(info)
- return query.all()
- schema = graphene.Schema(query=Query)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement