Method: GraphQL::Schema::Scalar.validate_non_null_input

Defined in:
lib/graphql/schema/scalar.rb

.validate_non_null_input(value, ctx, max_errors: nil) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/graphql/schema/scalar.rb', line 43

def validate_non_null_input(value, ctx, max_errors: nil)
  coerced_result = begin
    coerce_input(value, ctx)
  rescue GraphQL::CoercionError => err
    err
  rescue StandardError => err
    ctx.query.handle_or_reraise(err)
  end

  if coerced_result.nil?
    Query::InputValidationResult.from_problem("Could not coerce value #{GraphQL::Language.serialize(value)} to #{graphql_name}")
  elsif coerced_result.is_a?(GraphQL::CoercionError)
    Query::InputValidationResult.from_problem(coerced_result.message, message: coerced_result.message, extensions: coerced_result.extensions)
  else
    nil
  end
end