1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
# frozen_string_literal: true
module GraphQL
module StaticValidation
class ArgumentLiteralsAreCompatibleError < StaticValidation::Error
attr_reader :type_name
attr_reader :argument_name
attr_reader :argument
attr_reader :value
def initialize(message, path: nil, nodes: [], type:, argument_name: nil, extensions: nil, coerce_extensions: nil, argument: nil, value: nil)
super(message, path: path, nodes: nodes)
@type_name = type
@argument_name = argument_name
@extensions = extensions
@coerce_extensions = coerce_extensions
@argument = argument
@value = value
end
# A hash representation of this Message
def to_h
if @coerce_extensions
extensions = @coerce_extensions
# This is for legacy compat -- but this key is supposed to be a GraphQL type name :confounded:
extensions["typeName"] = "CoercionError"
else
extensions = {
"code" => code,
"typeName" => type_name
}
if argument_name
extensions["argumentName"] = argument_name
end
end
extensions.merge!(@extensions) unless @extensions.nil?
super.merge({
"extensions" => extensions
})
end
def code
"argumentLiteralsIncompatible"
end
end
end
end
|