class AppStoreConnect::Client::Utils

Public Class Methods

decode(string, content_type = 'application/json') click to toggle source

Right now this only supports gzip and json responses. If you need to support a different type then add it.

# File lib/app_store_connect/client/utils.rb, line 14
def self.decode(string, content_type = 'application/json')
  decoded_data = nil

  case content_type
  when 'application/a-gzip'
    sio = StringIO.new string
    gz = Zlib::GzipReader.new sio
    decoded_data = gz.read
  else # Assume JSON
    decoded_data = JSON
                   .parse(string)
                   .deep_transform_keys { |k| k.underscore.to_sym }
  end

  decoded_data
end
encode(hash) click to toggle source
# File lib/app_store_connect/client/utils.rb, line 6
def self.encode(hash)
  hash
    .deep_transform_keys { |s| s.to_s.camelize(:lower) }
    .to_json
end