class GraphQL::Types::ISO8601Date

own Date type.
Alternatively, use this built-in scalar as inspiration for your
argument :deliver_at, GraphQL::Types::ISO8601Date, null: false
field :published_at, GraphQL::Types::ISO8601Date, null: false
Use it for fields or arguments as follows:
using ISO 8601 format.
This scalar takes ‘Date`s and transmits them as strings,

def self.coerce_input(value, ctx)

Returns:
  • (Date, nil) -

Parameters:
  • str_value (String, Date, DateTime, Time) --
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

def self.coerce_result(value, _ctx)

Returns:
  • (String) -

Parameters:
  • value (Date, Time, DateTime, String) --
def self.coerce_result(value, _ctx)
  Date.parse(value.to_s).iso8601
end