Class: GraphQL::Subscriptions::SubscriptionRoot::Extension Private
- Inherits:
-
GraphQL::Schema::FieldExtension
- Object
- GraphQL::Schema::FieldExtension
- GraphQL::Subscriptions::SubscriptionRoot::Extension
- Defined in:
- lib/graphql/subscriptions/subscription_root.rb
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from GraphQL::Schema::FieldExtension
Instance Method Summary collapse
Methods inherited from GraphQL::Schema::FieldExtension
Constructor Details
This class inherits a constructor from GraphQL::Schema::FieldExtension
Instance Method Details
#after_resolve(value:, context:, object:, arguments:, **rest) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/graphql/subscriptions/subscription_root.rb', line 37 def after_resolve(value:, context:, object:, arguments:, **rest) if value.is_a?(GraphQL::ExecutionError) value elsif (events = context.namespace(:subscriptions)[:events]) # This is the first execution, so gather an Event # for the backend to register: event = Subscriptions::Event.new( name: field.name, arguments: arguments_without_field_extras(arguments: arguments), context: context, field: field, ) events << event value elsif context.query.subscription_topic == Subscriptions::Event.serialize( field.name, arguments_without_field_extras(arguments: arguments), field, scope: (field.subscription_scope ? context[field.subscription_scope] : nil), ) # This is a subscription update. The resolver returned `skip` if it should be skipped, # or else it returned an object to resolve the update. value else # This is a subscription update, but this event wasn't triggered. context.skip end end |