module Fortnox::API::Mapper::ToJSON::ClassMethods

Public Instance Methods

call(entity, keys_to_filter = {}) click to toggle source
# File lib/fortnox/api/mappers/base/to_json.rb, line 18
def call(entity, keys_to_filter = {})
  entity_hash = entity.to_hash
  clean_entity_hash = sanitise(entity_hash, keys_to_filter)
  clean_entity_hash = convert_hash_keys_to_json_format(clean_entity_hash)
  Registry[:hash].call(clean_entity_hash)
end
convert_hash_keys_to_json_format(hash) click to toggle source

PRIVATE

# File lib/fortnox/api/mappers/base/to_json.rb, line 27
def convert_hash_keys_to_json_format(hash)
  hash.each_with_object({}) do |(key, value), json_hash|
    json_hash[convert_key_to_json(key)] = value
  end
end
convert_key_to_json(key) click to toggle source
# File lib/fortnox/api/mappers/base/to_json.rb, line 33
def convert_key_to_json(key)
  self::KEY_MAP.fetch(key) { default_key_to_json_transform(key) }
end
default_key_to_json_transform(key) click to toggle source
# File lib/fortnox/api/mappers/base/to_json.rb, line 37
def default_key_to_json_transform(key)
  key.to_s.split('_').map(&:capitalize).join('')
end
sanitise(hash, keys_to_filter) click to toggle source
# File lib/fortnox/api/mappers/base/to_json.rb, line 41
def sanitise(hash, keys_to_filter)
  hash.reject do |key, value|
    next false if keys_to_filter.include?(key)
    value.nil?
  end
end