Sha256: 21323d7d2d36fd5bcd48dbaddb405e15ab63d1edbb65fc4339986be376a1c586

Contents?: true

Size: 1.37 KB

Versions: 1

Compression:

Stored size: 1.37 KB

Contents

require 'util/hash'
module TaobaoApi
 
  class Shop
    include BaseApi

    cattr_reader :configurable_attrs
    @@configurable_attrs = [:nick, :level, :title, :created, :address, :item_score, :service_score, :delivery_score, :praise_rate, :type, :shop_score]
    attr_reader *@@configurable_attrs

    def @@configurable_attrs.<<(item)
      return self if item.blank?
      super(item.to_sym).uniq!
      TaobaoApi::Shop.send :attr_reader, item.to_sym
      self
    end

    def self.get_taobao_shop(nick)
      options = get_result(nick)
      return nil if options.blank?

      new options
    end

    def is_tmall?
      @type == 'B'
    end

    def is_taobao?
      @type == 'C'
    end 

    private
    def initialize(options)
      @@configurable_attrs.each do |attr_name|
        instance_variable_set("@#{attr_name}", options.search(attr_name.to_s))
      end
      
      taobao_user   = TaobaoApi::User.new(@nick)
      @praise_rate  = taobao_user.praise_rate
      @address      = taobao_user.address
      @level        = taobao_user.level
      @type         = taobao_user.type
    end

    def self.get_result(nick)
      options = { 
        :method     => 'taobao.shop.get', 
        :timestamp  => Time.now.to_s(:db), 
        :nick       => nick,
        :fields     => @@configurable_attrs.join(',')
      }

      taobao_api_get(options).search('shop') || {}
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
taobao_api-0.2.1 lib/taobao_api/shop.rb