Class: GraphQL::InputObjectType

Inherits:
BaseType
  • Object
show all
Extended by:
Define::InstanceDefinable::DeprecatedDefine
Defined in:
lib/graphql/input_object_type.rb

Instance Attribute Summary collapse

Attributes inherited from BaseType

#ast_node, #default_relay, #default_scalar, #description, #introspection, #name

Instance Method Summary collapse

Methods included from Define::InstanceDefinable::DeprecatedDefine

define

Methods inherited from BaseType

#==, #coerce_input, #coerce_isolated_input, #coerce_isolated_result, #default_relay?, #default_scalar?, #get_field, #introspection?, #list?, #non_null?, resolve_related_type, #resolve_type, #to_definition, #to_list_type, #to_non_null_type, #to_s, #type_class, #unwrap, #valid_input?, #valid_isolated_input?, #validate_input, #validate_isolated_input

Methods included from Relay::TypeExtensions

#connection_type, #define_connection, #define_edge, #edge_type

Methods included from Define::InstanceDefinable

#define, #deprecated_define, #metadata, #redefine

Methods included from Define::NonNullWithBang

#!

Constructor Details

#initializeInputObjectType

Returns a new instance of InputObjectType.



24
25
26
27
# File 'lib/graphql/input_object_type.rb', line 24

def initialize
  super
  @arguments = {}
end

Instance Attribute Details

#argumentsHash<String => GraphQL::Argument> Also known as: input_fields

Returns Map String argument names to their Argument implementations.

Returns:



20
21
22
# File 'lib/graphql/input_object_type.rb', line 20

def arguments
  @arguments
end

#arguments_classObject



13
14
15
# File 'lib/graphql/input_object_type.rb', line 13

def arguments_class
  @arguments_class
end

#mutationGraphQL::Relay::Mutation?

Returns The mutation this field was derived from, if it was derived from a mutation.

Returns:



17
18
19
# File 'lib/graphql/input_object_type.rb', line 17

def mutation
  @mutation
end

Instance Method Details

#coerce_result(value, ctx = nil) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/graphql/input_object_type.rb', line 38

def coerce_result(value, ctx = nil)
  if ctx.nil?
    warn_deprecated_coerce("coerce_isolated_result")
    ctx = GraphQL::Query::NullContext
  end

  # Allow the application to provide values as :symbols, and convert them to the strings
  value = value.reduce({}) { |memo, (k, v)| memo[k.to_s] = v; memo }

  result = {}

  arguments.each do |input_key, input_field_defn|
    input_value = value[input_key]
    if value.key?(input_key)
      result[input_key] = if input_value.nil?
        nil
      else
        input_field_defn.type.coerce_result(input_value, ctx)
      end
    end
  end

  result
end

#get_argument(argument_name) ⇒ Object



63
64
65
# File 'lib/graphql/input_object_type.rb', line 63

def get_argument(argument_name)
  arguments[argument_name]
end

#initialize_copy(other) ⇒ Object



29
30
31
32
# File 'lib/graphql/input_object_type.rb', line 29

def initialize_copy(other)
  super
  @arguments = other.arguments.dup
end

#kindObject



34
35
36
# File 'lib/graphql/input_object_type.rb', line 34

def kind
  GraphQL::TypeKinds::INPUT_OBJECT
end