1010use GraphQL \Error \Error ;
1111use GraphQL \Executor \ExecutionResult ;
1212use GraphQL \Executor \Promise \Promise ;
13+ use GraphQL \Server \ServerConfig ;
1314use GraphQL \Server \StandardServer ;
1415use GraphQL \Upload \UploadMiddleware ;
1516use function in_array ;
2728use Symfony \Component \HttpKernel \KernelEvents ;
2829use Symfony \Component \Routing \Route ;
2930use Symfony \Component \Routing \RouteCollection ;
31+ use TheCodingMachine \Graphqlite \Bundle \Context \SymfonyGraphQLContext ;
3032
3133/**
3234 * Listens to every single request and forward Graphql requests to Graphql Webonix standardServer.
@@ -37,14 +39,16 @@ class GraphqliteController
3739 * @var HttpMessageFactoryInterface
3840 */
3941 private $ httpMessageFactory ;
40- /** @var StandardServer */
41- private $ standardServer ;
4242 /** @var bool|int */
4343 private $ debug ;
44+ /**
45+ * @var ServerConfig
46+ */
47+ private $ serverConfig ;
4448
45- public function __construct (StandardServer $ standardServer , HttpMessageFactoryInterface $ httpMessageFactory = null , ?int $ debug = Debug::RETHROW_UNSAFE_EXCEPTIONS )
49+ public function __construct (ServerConfig $ serverConfig , HttpMessageFactoryInterface $ httpMessageFactory = null , ?int $ debug = Debug::RETHROW_UNSAFE_EXCEPTIONS )
4650 {
47- $ this ->standardServer = $ standardServer ;
51+ $ this ->serverConfig = $ serverConfig ;
4852 $ this ->httpMessageFactory = $ httpMessageFactory ?: new DiactorosFactory ();
4953 $ this ->debug = $ debug ?? false ;
5054 }
@@ -84,12 +88,17 @@ public function handleRequest(Request $request): Response
8488 $ uploadMiddleware = new UploadMiddleware ();
8589 $ psr7Request = $ uploadMiddleware ->processRequest ($ psr7Request );
8690
87- return $ this ->handlePsr7Request ($ psr7Request );
91+ return $ this ->handlePsr7Request ($ psr7Request, $ request );
8892 }
8993
90- private function handlePsr7Request (ServerRequestInterface $ request ): JsonResponse
94+ private function handlePsr7Request (ServerRequestInterface $ request, Request $ symfonyRequest ): JsonResponse
9195 {
92- $ result = $ this ->standardServer ->executePsrRequest ($ request );
96+ // Let's put the request in the context.
97+ $ serverConfig = clone $ this ->serverConfig ;
98+ $ serverConfig ->setContext (new SymfonyGraphQLContext ($ symfonyRequest ));
99+
100+ $ standardService = new StandardServer ($ serverConfig );
101+ $ result = $ standardService ->executePsrRequest ($ request );
93102
94103 if ($ result instanceof ExecutionResult) {
95104 return new JsonResponse ($ result ->toArray ($ this ->debug ), $ this ->decideHttpStatusCode ($ result ));
0 commit comments