-
Notifications
You must be signed in to change notification settings - Fork 87
Description
Would it be possible to refactor this:
DjangoChannelsGraphqlWs/channels_graphql_ws/graphql_ws_consumer.py
Lines 537 to 542 in 09a2ffd
# Prepare a context object. | |
context = DictAsObject({}) | |
context.channels_scope = self.scope | |
context.channel_name = self.channel_name | |
context.graphql_operation_name = op_name | |
context.graphql_operation_id = op_id |
into its own get_context method, which a user could override in a custom subclass of the GraphqlWsConsumer if they want to inject something into the context?
Currently I'm injecting my own fields by overriding _on_gql_start__subscribe
and injecting the fields before passing it on to the super function, which seemed to be the least impactful place to do it. But I just found out that queries and mutations don't pass through that function, meaning I would have to copy-paste the entire _on_gql_start
method from the source into my override class just to add my own fields to the context...
A get_context
method would make this trivial and very user friendly. It would also mimic how graphene-django provides this functionality to its users: