#!/usr/bin/env python
# encoding: utf-8
"""
traderate.py
提供了评价的添加和查询功能
Created by 徐 光硕 on 2011-11-23.
Copyright (c) 2011 __MyCompanyName__. All rights reserved.
"""
from api import TOP, TOPRequest, TOPDate
[docs]class TradeRate(TOP):
    '''评价列表'''
    def __init__(self, API_KEY=None, APP_SECRET=None, ENVIRONMENT=None):
        super(TradeRate, self).__init__( API_KEY, APP_SECRET, ENVIRONMENT )
        self.models = {'created':TOPDate}
        self.fields = ['valid_score','tid','oid','role','nick','result','created','rated_nick','item_title','item_price','content','reply']
    
[docs]    def add(self, tid, result, role, session, oid=None, content=None, anony=None):
        '''taobao.traderate.add 新增单个评价
        
        新增单个评价(注:在评价之前需要对订单成功的时间进行判定(end_time),如果超过15天,不能再通过该接口进行评价)'''
        request = TOPRequest('taobao.traderate.add')
        request['tid'] = tid
        request['result'] = result
        request['role'] = role
        if oid!=None: request['oid'] = oid
        if content!=None: request['content'] = content
        if anony!=None: request['anony'] = anony
        self.create(self.execute(request, session)['trade_rate'])
        return self
     
[docs]    def list_add(self, tid, result, role, session, oid=None, content=None, anony=None):
        '''taobao.traderate.list.add 针对父子订单新增批量评价
        
        针对父子订单新增批量评价(注:在评价之前需要对订单成功的时间进行判定(end_time),如果超过15天,不用再通过该接口进行评价)'''
        request = TOPRequest('taobao.traderate.list.add')
        request['tid'] = tid
        request['result'] = result
        request['role'] = role
        if oid!=None: request['oid'] = oid
        if content!=None: request['content'] = content
        if anony!=None: request['anony'] = anony
        self.create(self.execute(request, session)['trade_rate'])
        return self
    
  
[docs]class TradeRates(TOP):
    def __init__(self, API_KEY=None, APP_SECRET=None, ENVIRONMENT=None):
        super(TradeRates, self).__init__( API_KEY, APP_SECRET, ENVIRONMENT )
        self.models = {'trade_rates':TradeRate}
        self.fields = ['trade_rates','total_results']
    
[docs]    def get(self, rate_type, role, session, fields=[], **kwargs):
        '''taobao.traderates.get 搜索评价信息
        
        搜索评价信息,只能获取距今180天内的评价记录'''
        request = TOPRequest('taobao.traderates.get')
        request['rate_type'] = rate_type
        request['role'] = role
        if not fields:
            tradeRate = TradeRate()
            fields = tradeRate.fields
        request['fields'] = fields
        for k, v in kwargs.iteritems():
            if k not in ('result', 'page_no', 'page_size', 'start_date', 'end_date', 'tid') and v==None: continue
            request[k] = v
        self.create(self.execute(request, session))
        return self.trade_rates
     
[docs]    def search(self, num_iid, seller_nick, page_no=1, page_size=20):
        '''taobao.traderates.search 商品评价查询接口
        
        通过商品id查询对应的评价信息'''
        request = TOPRequest('taobao.traderates.search')
        request['num_iid'] = num_iid
        request['seller_nick'] = seller_nick
        request['page_no'] = page_no
        reqiest['page_size'] = page_size
        self.create(self.execute(request))
        return self.trade_rates