@@ -216,13 +216,20 @@ async def handle_subscribe(self, message: SubscribeMessage) -> None:
216216            await  self .websocket .close (code = 4401 , reason = "Unauthorized" )
217217            return 
218218
219-         try :
220-             graphql_document  =  parse (message ["payload" ]["query" ])
221-         except  GraphQLSyntaxError  as  exc :
222-             await  self .websocket .close (code = 4400 , reason = exc .message )
223-             return 
219+         request_data  =  await  self .view .get_graphql_request_data (
220+             self .websocket , self .context , message ["payload" ], "subscription" 
221+         )
224222
225-         operation_name  =  message ["payload" ].get ("operationName" )
223+         if  request_data .document  is  not   None :
224+             graphql_document  =  request_data .document 
225+         else :
226+             try :
227+                 graphql_document  =  parse (request_data .query )
228+             except  GraphQLSyntaxError  as  exc :
229+                 await  self .websocket .close (code = 4400 , reason = exc .message )
230+                 return 
231+ 
232+         operation_name  =  request_data .operation_name 
226233
227234        try :
228235            operation_type  =  get_operation_type (graphql_document , operation_name )
@@ -248,15 +255,11 @@ async def handle_subscribe(self, message: SubscribeMessage) -> None:
248255
249256        if  self .debug :  # pragma: no cover 
250257            pretty_print_graphql_operation (
251-                 message [ "payload" ]. get ( "operationName" ) ,
252-                 message [ "payload" ][ " query" ] ,
253-                 message [ "payload" ]. get ( " variables" ) ,
258+                 request_data . operation_name ,
259+                 request_data . query ,
260+                 request_data . variables ,
254261            )
255262
256-         request_data  =  await  self .view .get_graphql_request_data (
257-             self .websocket , self .context , message ["payload" ], "subscription" 
258-         )
259- 
260263        operation  =  Operation (
261264            self ,
262265            message ["id" ],
0 commit comments