示例#1
0
 def ad_sales(self, **kwargs):
     if not kwargs.get('break_down'):
         raise ValueError("Break_down parameter is requireds")
     data = format_request_data(**kwargs)
     return self.paginator.make(self.AD_SALES_ENDPOINT,
                                data=data,
                                union_key='sales_list')
示例#2
0
 def explore(self, country, device, date, keyword):
     data = format_request_data(keyword=keyword,
                                date=date,
                                country=country,
                                device=device)
     uri = self.EXPLORER_ENDPOINT.format(market=self.market)
     return self.http_client.request(uri, data)
示例#3
0
 def usage(self, start_date, end_date, data_source='itc', **kwargs):
     data = format_request_data(start_date=start_date,
                                end_date=end_date,
                                **kwargs)
     uri = self._format_product_uri(self.USAGE_ENDPOINT,
                                    data_source=data_source)
     return self.paginator.make(uri, data=data, union_key='usage_list')
示例#4
0
 def performance(self, country, device, start_date, end_date, keywords):
     data = format_request_data(keywords=keywords,
                                start_date=start_date,
                                end_date=end_date,
                                country=country,
                                device=device)
     uri = self._format_uri(self.PERFORMANCE_ENDPOINT)
     return self.http_client.request(uri, data)
示例#5
0
 def test_format_request_data(self):
     data = {
         'device': 'iphone+ipad',
         'start_date': '2017-03-03',
         'end_date': datetime.date(2017, 3, 10),
         'date': None,
         'keywords': ['uber', 'netflix'],
         'countries': ['US', 'AU'],
     }
     expected = {
         'device': 'iphone+ipad',
         'start_date': '2017-03-03',
         'end_date': '2017-03-10',
         'keywords': 'uber,netflix',
         'countries': 'US+AU',
     }
     result = util.format_request_data(**data)
     self.assertEqual(result, expected)
示例#6
0
 def sales(self, **kwargs):
     uri = self._format_uri(self.SALES_ENDPOINT)
     data = format_request_data(**kwargs)
     return self.paginator.make(uri, data, 'sales_list')
示例#7
0
 def ads(self, **kwargs):
     uri = self._format_uri(self.ADS_ENDPOINT)
     data = format_request_data(**kwargs)
     return self.paginator.make(uri, data, 'ad_items')
示例#8
0
 def ranking(self, countries, categories, **kwargs):
     data = format_request_data(countries=countries,
                                categories=categories,
                                **kwargs)
     uri = self.RANKING_ENDPOINT.format(market=self.market)
     return self.http_client.request(uri, data).get('products')
示例#9
0
 def types(self):
     data = format_request_data(market=self.market)
     r = self.http_client.request(self.TYPES_ENDPOINT, data)
     return r.get('types')
示例#10
0
 def categories(self, countries=None):
     data = format_request_data(market=self.market, countries=countries)
     r = self.http_client.request(self.CATEGORIES_ENDPOINT, data)
     return r.get('all_category_pages')
示例#11
0
 def ratings(self, **kwargs):
     data = format_request_data(**kwargs)
     uri = self._format_uri(self.RATINGS_ENDPOINT)
     return self.paginator.make(uri, data=data, union_key='ratings')
示例#12
0
 def _format_data(self, start_date, end_date, **kwargs):
     data = format_request_data(**kwargs)
     data['start_date'] = to_day(start_date)
     data['end_date'] = to_day(end_date)
     return data
示例#13
0
 def ranked(self, country, device, date):
     data = format_request_data(date=date, country=country, device=device)
     uri = self._format_uri(self.RANKED_ENDPOINT)
     return self.http_client.request(uri, data)
示例#14
0
 def metrics(self, **kwargs):
     data = format_request_data(**kwargs)
     uri = self._format_product_uri(self.METRICS_ENDPOINT)
     return self.paginator.make(uri, data=data, union_key='metrics_list')
示例#15
0
 def sales(self, union_key='sales_list', **kwargs):
     uri = self._format_product_uri(self.SALES_ENDPOINT)
     data = format_request_data(**kwargs)
     return self.paginator.make(uri, data=data, union_key=union_key)
示例#16
0
            util.to_day('2017-03-03 invalid format')

    def test_list_to_str(self):
        result = util.list_to_str('US+GB')
        self.assertEqual(result, 'US+GB')

        result = util.list_to_str(['US', 'GB'])
        self.assertEqual(result, 'US+GB')

        result = util.list_to_str(['US', 'GB'], joinstr=',')
        self.assertEqual(result, 'US,GB')

    def test_format_request_data(self):
        data = {
            'device': 'iphone+ipad',
            'start_date': '2017-03-03',
            'end_date': datetime.date(2017, 03, 10),
            'date': None,
            'keywords': ['uber', 'netflix'],
            'countries': ['US', 'AU'],
        }
        expected = {
            'device': 'iphone+ipad',
            'start_date': '2017-03-03',
            'end_date': '2017-03-10',
            'keywords': 'uber,netflix',
            'countries': 'US+AU',
        }
        result = util.format_request_data(**data)
        self.assertEqual(result, expected)