Improved ariadne with DI

This commit is contained in:
2023-01-06 23:18:40 +01:00
parent b13695b018
commit 77e18027a0
12 changed files with 102 additions and 188 deletions

View File

@@ -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:

View File

@@ -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
)