Sha256: 7f2dceb983e47f48f5208b929095196d01e17d612dda2dd473249284f530f477

Contents?: true

Size: 1.11 KB

Versions: 67

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true
module GraphQL
  class Query
    class InputValidationResult
      attr_accessor :problems

      def initialize(valid: true, problems: nil)
        @valid = valid
        @problems = problems
      end

      def valid?
        @valid
      end

      def add_problem(explanation, path = nil, extensions: nil, message: nil)
        @problems ||= []
        @valid = false
        problem = { "path" => path || [], "explanation" => explanation }
        if extensions
          problem["extensions"] = extensions
        end
        if message
          problem["message"] = message
        end
        @problems.push(problem)
      end

      def merge_result!(path, inner_result)
        return if inner_result.valid?

        if inner_result.problems
          inner_result.problems.each do |p|
            item_path = [path, *p["path"]]
            add_problem(p["explanation"], item_path, message: p["message"], extensions: p["extensions"])
          end
        end
        # It could have been explicitly set on inner_result (if it had no problems)
        @valid = false
      end
    end
  end
end

Version data entries

67 entries across 67 versions & 2 rubygems

Version Path
graphql-1.11.12 lib/graphql/query/input_validation_result.rb
graphql-1.11.11 lib/graphql/query/input_validation_result.rb
graphql-1.12.25 lib/graphql/query/input_validation_result.rb
graphql-1.13.15 lib/graphql/query/input_validation_result.rb
graphql-1.13.14 lib/graphql/query/input_validation_result.rb
graphql-1.13.13 lib/graphql/query/input_validation_result.rb
graphql_cody-1.13.0 lib/graphql/query/input_validation_result.rb
graphql-1.13.12 lib/graphql/query/input_validation_result.rb
graphql-1.13.11 lib/graphql/query/input_validation_result.rb
graphql-1.13.10 lib/graphql/query/input_validation_result.rb
graphql-2.0.0 lib/graphql/query/input_validation_result.rb
graphql-1.13.9 lib/graphql/query/input_validation_result.rb
graphql-1.12.24 lib/graphql/query/input_validation_result.rb
graphql-1.13.8 lib/graphql/query/input_validation_result.rb
graphql-1.13.7 lib/graphql/query/input_validation_result.rb
graphql-1.13.6 lib/graphql/query/input_validation_result.rb
graphql-1.13.5 lib/graphql/query/input_validation_result.rb
graphql-1.13.4 lib/graphql/query/input_validation_result.rb
graphql-1.13.3 lib/graphql/query/input_validation_result.rb
graphql-1.12.23 lib/graphql/query/input_validation_result.rb