class GraphQL::Types::ISO8601DateTime
This scalar takes `DateTime`s and transmits them as strings, using ISO 8601 format.
Use it for fields or arguments as follows:
field :created_at, GraphQL::Types::ISO8601DateTime, null: false argument :deliver_at, GraphQL::Types::ISO8601DateTime, null: false
Alternatively, use this built-in scalar as inspiration for your own DateTime type.
Constants
- DEFAULT_TIME_PRECISION
It's not compatible with Rails' default, i.e. ActiveSupport::JSON::Encoder.time_precision (3 by default)
Public Class Methods
coerce_input(str_value, _ctx)
click to toggle source
@param str_value [String] @return [DateTime]
# File lib/graphql/types/iso_8601_date_time.rb, line 40 def self.coerce_input(str_value, _ctx) DateTime.iso8601(str_value) rescue ArgumentError # Invalid input nil end
coerce_result(value, _ctx)
click to toggle source
@param value [DateTime] @return [String]
# File lib/graphql/types/iso_8601_date_time.rb, line 34 def self.coerce_result(value, _ctx) value.iso8601(time_precision) end
time_precision()
click to toggle source
@return [Integer]
# File lib/graphql/types/iso_8601_date_time.rb, line 23 def self.time_precision @time_precision || DEFAULT_TIME_PRECISION end
time_precision=(value)
click to toggle source
@param [Integer] value
# File lib/graphql/types/iso_8601_date_time.rb, line 28 def self.time_precision=(value) @time_precision = value end