Improved ariadne with DI
This commit is contained in:
@@ -21,6 +21,7 @@ from bot_api.exception.service_exception import ServiceException
|
||||
from bot_api.logging.api_logger import ApiLogger
|
||||
from bot_api.model.error_dto import ErrorDTO
|
||||
from bot_api.route.route import Route
|
||||
from bot_data.graphql.graphql_service import GraphQLService
|
||||
|
||||
|
||||
class Api(Flask):
|
||||
@@ -32,6 +33,7 @@ class Api(Flask):
|
||||
api_settings: ApiSettings,
|
||||
frontend_settings: FrontendSettings,
|
||||
auth_settings: AuthenticationSettings,
|
||||
graphql: GraphQLService,
|
||||
*args, **kwargs
|
||||
):
|
||||
if not args:
|
||||
|
@@ -7,8 +7,8 @@ from flask import request, jsonify
|
||||
|
||||
from bot_api.logging.api_logger import ApiLogger
|
||||
from bot_api.route.route import Route
|
||||
from bot_data.abc.query_abc import QueryABC
|
||||
from bot_data.graphql.query import Query
|
||||
from bot_data.graphql.schema import Schema
|
||||
|
||||
|
||||
class GraphQLController:
|
||||
@@ -19,10 +19,12 @@ class GraphQLController:
|
||||
config: ConfigurationABC,
|
||||
env: ApplicationEnvironmentABC,
|
||||
logger: ApiLogger,
|
||||
schema: Schema,
|
||||
):
|
||||
self._config = config
|
||||
self._env = env
|
||||
self._logger = logger
|
||||
self._schema = schema
|
||||
|
||||
@Route.get(f'{BasePath}/playground')
|
||||
async def playground(self):
|
||||
@@ -30,13 +32,12 @@ class GraphQLController:
|
||||
|
||||
@Route.post(f'{BasePath}')
|
||||
async def graphql(self):
|
||||
QueryABC.init()
|
||||
data = request.get_json()
|
||||
|
||||
# Note: Passing the request to the context is optional.
|
||||
# In Flask, the current request is always accessible as flask.request
|
||||
success, result = graphql_sync(
|
||||
make_executable_schema(Query),
|
||||
self._schema.schema,
|
||||
data,
|
||||
context_value=request
|
||||
)
|
||||
|
Reference in New Issue
Block a user