Advertisement
Guest User

Untitled

a guest
May 13th, 2023
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.70 KB | None | 0 0
  1. from flask_sqlalchemy import SQLAlchemy
  2. from sqlalchemy.ext.automap import automap_base
  3.  
  4. import graphene
  5. from graphene_sqlalchemy import SQLAlchemyObjectType
  6.  
  7. # SQLAlchemy
  8. db = SQLAlchemy()
  9. Base = automap_base()
  10.  
  11. def init_db(app):
  12.     global Base, db
  13.     db.init_app(app)
  14.     Base.prepare(db.engine, reflect=True)
  15.  
  16. # Get models
  17. def get_user_model():
  18.     return Base.classes.AppUser
  19.  
  20. def get_link_model():
  21.     return Base.classes.Link
  22.  
  23. def get_link_stack_model():
  24.     return Base.classes.LinkStack
  25.  
  26. def get_password_model():
  27.     return Base.classes.Password
  28.  
  29.  
  30.  
  31. # GraphQL Schema
  32.  
  33. class UserObject(SQLAlchemyObjectType):
  34.     class Meta:
  35.         model = get_user_model()
  36.  
  37. class LinkObject(SQLAlchemyObjectType):
  38.     class Meta:
  39.         model = get_link_model()
  40.  
  41. class LinkStackObject(SQLAlchemyObjectType):
  42.     class Meta:
  43.         model = get_link_stack_model()
  44.  
  45. class PasswordObject(SQLAlchemyObjectType):
  46.     class Meta:
  47.         model = get_password_model()
  48.  
  49.  
  50. class Query(graphene.ObjectType):
  51.     users = graphene.List(UserObject)
  52.     links = graphene.List(LinkObject)  
  53.     link_stacks = graphene.List(LinkStackObject)        
  54.     passwords = graphene.List(PasswordObject)
  55.  
  56.     def resolve_users(self, info):
  57.         query = UserObject.get_query(info)
  58.         return query.all()
  59.    
  60.     def resolve_links(self, info):
  61.         query = LinkObject.get_query(info)
  62.         return query.all()
  63.    
  64.     def resolve_link_stacks(self, info):
  65.         query = LinkStackObject.get_query(info)
  66.         return query.all()
  67.    
  68.     def resolve_passwords(self, info):
  69.         query = PasswordObject.get_query(info)
  70.         return query.all()
  71.  
  72. schema = graphene.Schema(query=Query)  
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement