Method: GraphQL::Types::ISO8601Date.coerce_input

Defined in:
lib/graphql/types/iso_8601_date.rb

.coerce_input(value, ctx) ⇒ Date?

Parameters:

  • str_value (String, Date, DateTime, Time)

Returns:

  • (Date, nil)


27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/graphql/types/iso_8601_date.rb', line 27

def self.coerce_input(value, ctx)
  if value.is_a?(::Date)
    value
  elsif value.is_a?(::DateTime)
    value.to_date
  elsif value.is_a?(::Time)
    value.to_date
  elsif value.nil?
    nil
  else
    Date.iso8601(value)
  end
rescue ArgumentError, TypeError
  err = GraphQL::DateEncodingError.new(value)
  ctx.schema.type_error(err, ctx)
end