Module: GraphTypes

Defined in:
lib/graph_types.rb,
lib/graph_types/version.rb,
lib/graph_types/types/money_type.rb,
lib/graph_types/types/date_time_type.rb

Constant Summary collapse

VERSION =
'0.2.0'
MoneyType =
::GraphQL::ObjectType.define do
  name 'Money'

  field :cents, types.Int do
    resolve ->(object, _args, _context) do
      (object.to_f * 100).to_i
    end
  end

  field :formatted, types.String do
    argument :delimiter, types.String, default_value: '.'
    argument :separator, types.String, default_value: ','
    argument :unit,      types.String, default_value: 'R$ '

    resolve ->(object, args, _context) do
      ActionController::Base.helpers.number_to_currency object.to_f, args.to_h
    end
  end
end
DateTimeType =
::GraphQL::ObjectType.define do
  name 'DateTime'

  field :formatted, types.String do
    argument :strftime, types.String, default_value: '%FT%T%Z'

    resolve ->(object, args, _context) do
      object.strftime args[:strftime]
    end
  end
end