def init_graphql_schema():
"""
Go through all sub apps defined Queries, Types and mutations
defined in (graphql.py) and register them in one global schema
"""
# Import all (graphql) submodules defined in package 'graphql'
# After importing we'll have
# All Queries under :: BaseQuery.__subclasses__()
# All Types under :: SQLAlchemyObjectType.__subclasses__()
# All Mutations under :: BaseMutation.__subclasses__()
CRM._load_modules(module_type='types')
CRM._load_modules(module_type='queries')
CRM._load_modules(module_type='mutations')
schema = graphene.Schema(
# Make dynamic Query class that inherits all defined queries
query=type(
'Query',
tuple(BaseQuery.__subclasses__()),
{}
),
types=list(SQLAlchemyObjectType.__subclasses__()),
# Make dynamic Mutations class that inherits all defined mutations
mutation=type(
'Mutations',
tuple(BaseMutation.__subclasses__()),
{}
)
)
return schema
评论列表
文章目录