module GraphQL::StaticValidation::SubscriptionRootExistsAndSingleSubscriptionSelection
Public Instance Methods
# File lib/graphql/static_validation/rules/subscription_root_exists_and_single_subscription_selection.rb, line 8 def on_operation_definition(node, parent) if node.operation_type == "subscription" if context.types.subscription_root.nil? add_error(GraphQL::StaticValidation::SubscriptionRootExistsError.new( 'Schema is not configured for subscriptions', nodes: node )) else root_fields = subscription_root_fields(node) if root_fields.map { |field| field.alias || field.name }.uniq.size != 1 add_error(GraphQL::StaticValidation::NotSingleSubscriptionError.new( 'A subscription operation may only have one selection', nodes: node, )) elsif root_fields.any? { |field| field.name.start_with?("__") } add_error(GraphQL::StaticValidation::NotSingleSubscriptionError.new( 'A subscription operation may not select an introspection field', nodes: node, )) end super end else super end end
Calls superclass method