class DeskApi::Request::EncodeDates

{DeskApi::Request::EncodeJson} is the Faraday middleware that dumps a json string from whatever is specified in the request body. It also sets the “Content-Type” header.

@author Thomas Stachl <tstachl@salesforce.com> @copyright Copyright © 2013-2016 Salesforce.com @license BSD 3-Clause License

Public Instance Methods

call(env) click to toggle source

Changes the request before it gets sent

@param env [Hash] the request hash

# File lib/desk_api/request/encode_dates.rb, line 42
def call(env)
  if env[:body] && !env[:body].to_s.empty?
    env[:body] = encode_dates(env[:body])
  end
  @app.call env
end

Private Instance Methods

encode_dates(value) click to toggle source

Encodes all {Date}, {DateTime} and {Time} values to iso8601

@param value [Mixed] the current body

# File lib/desk_api/request/encode_dates.rb, line 55
def encode_dates(value)
  case value
  when Hash
    value.each_pair do |key, element|
      value[key] = encode_dates element
    end
  when Array
    value.each_with_index do |element, index|
      value[index] = encode_dates element
    end
  when DateTime, Date, Time
    value.to_time.utc.iso8601
  else
    value
  end
end