Module: GraphQL::StaticValidation::OperationNamesAreValid
- Defined in:
- lib/graphql/static_validation/rules/operation_names_are_valid.rb
Instance Method Summary collapse
-
#initialize ⇒ Object
-
#on_document(node, parent) ⇒ Object
-
#on_operation_definition(node, parent) ⇒ Object
Instance Method Details
#initialize ⇒ Object
5 6 7 8 |
# File 'lib/graphql/static_validation/rules/operation_names_are_valid.rb', line 5 def initialize(*) super @operation_names = Hash.new { |h, k| h[k] = [] } end |
#on_document(node, parent) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/graphql/static_validation/rules/operation_names_are_valid.rb', line 15 def on_document(node, parent) super op_count = @operation_names.values.inject(0) { |m, v| m + v.size } @operation_names.each do |name, nodes| if name.nil? && op_count > 1 add_error(GraphQL::StaticValidation::OperationNamesAreValidError.new( %|Operation name is required when multiple operations are present|, nodes: nodes )) elsif nodes.length > 1 add_error(GraphQL::StaticValidation::OperationNamesAreValidError.new( %|Operation name "#{name}" must be unique|, nodes: nodes, name: name )) end end end |
#on_operation_definition(node, parent) ⇒ Object
10 11 12 13 |
# File 'lib/graphql/static_validation/rules/operation_names_are_valid.rb', line 10 def on_operation_definition(node, parent) @operation_names[node.name] << node super end |