Class: GraphQL::Query::LiteralInput
- Inherits:
-
Object
- Object
- GraphQL::Query::LiteralInput
- Defined in:
- lib/graphql/query/literal_input.rb
Overview
Turn query string values into something useful for query execution
Class Method Summary collapse
- .coerce(type, value, variables) ⇒ Object
- .from_arguments(ast_arguments, argument_defns, variables) ⇒ Object
Class Method Details
.coerce(type, value, variables) ⇒ Object
5 6 7 8 9 10 11 12 13 |
# File 'lib/graphql/query/literal_input.rb', line 5 def self.coerce(type, value, variables) if value.is_a?(Language::Nodes::VariableIdentifier) variables[value.name] elsif value.nil? nil else LiteralKindCoercers::STRATEGIES.fetch(type.kind).coerce(value, type, variables) end end |
.from_arguments(ast_arguments, argument_defns, variables) ⇒ Object
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 |
# File 'lib/graphql/query/literal_input.rb', line 15 def self.from_arguments(ast_arguments, argument_defns, variables) values_hash = {} argument_defns.each do |arg_name, arg_defn| ast_arg = ast_arguments.find { |ast_arg| ast_arg.name == arg_name } arg_default_value = arg_defn.default_value if ast_arg.nil? && arg_default_value.nil? # If it wasn't in the document, # and there's no provided default, # then don't pass it to the resolve function next else arg_value = nil if ast_arg arg_value = coerce(arg_defn.type, ast_arg.value, variables) end if arg_value.nil? arg_value = arg_default_value end values_hash[arg_name] = arg_value end end GraphQL::Query::Arguments.new(values_hash, argument_definitions: argument_defns) end |