Class: GraphQL::InputObjectType

Inherits:
BaseType
  • Object
show all
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 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, #metadata, #redefine

Methods included from Define::NonNullWithBang

#!

Constructor Details

#initializeInputObjectType

Returns a new instance of InputObjectType.


22
23
24
25
# File 'lib/graphql/input_object_type.rb', line 22

def initialize
  super
  @arguments = {}
end

Instance Attribute Details

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


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

def arguments
  @arguments
end

#arguments_classObject


11
12
13
# File 'lib/graphql/input_object_type.rb', line 11

def arguments_class
  @arguments_class
end

#mutationGraphQL::Relay::Mutation?


15
16
17
# File 'lib/graphql/input_object_type.rb', line 15

def mutation
  @mutation
end

Instance Method Details

#coerce_result(value, ctx = nil) ⇒ Object


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

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

#initialize_copy(other) ⇒ Object


27
28
29
30
# File 'lib/graphql/input_object_type.rb', line 27

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

#kindObject


32
33
34
# File 'lib/graphql/input_object_type.rb', line 32

def kind
  GraphQL::TypeKinds::INPUT_OBJECT
end