class Skimlinks::Merchant

Attributes

average_commission[RW]
average_conversion_rate[RW]
categories[RW]
countries[RW]
domains[RW]
id[RW]
logo_url[RW]
name[RW]
preferred[RW]
product_count[RW]
updated_at[RW]

Public Class Methods

build_from_api_response(merchant_data) click to toggle source
# File lib/skimlinks/merchant.rb, line 8
def build_from_api_response(merchant_data)
  merchant_data.map do |merchant|
    self.new \
      id:                      merchant['merchantID'].to_i,
      name:                    merchant['merchantName'].presence,
      preferred:               HashWithIndifferentAccess.new(merchant['preferred']),
      updated_at:              merchant['dateUpdated'].present? ? Time.parse(merchant['dateUpdated']) : nil,
      average_conversion_rate: merchant['averageConversionRate'].presence,
      average_commission:      merchant['averageCommission'].presence,
      logo_url:                merchant['logo'].presence,
      domains:                 HashWithIndifferentAccess.new(merchant['domains']),
      categories:              HashWithIndifferentAccess.new(merchant['categories']),
      countries:               Array(merchant['countries'].presence)
  end.sort_by(&:name)
end
new(args = {}) click to toggle source
# File lib/skimlinks/merchant.rb, line 25
def initialize(args = {})
  args.each do |k, v|
    self.send "#{k}=", v
  end
end

Public Instance Methods

preferred?() click to toggle source
# File lib/skimlinks/merchant.rb, line 31
def preferred?
  self.preferred.present?
end