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')
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)
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')
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)
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)
def sales(self, **kwargs): uri = self._format_uri(self.SALES_ENDPOINT) data = format_request_data(**kwargs) return self.paginator.make(uri, data, 'sales_list')
def ads(self, **kwargs): uri = self._format_uri(self.ADS_ENDPOINT) data = format_request_data(**kwargs) return self.paginator.make(uri, data, 'ad_items')
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')
def types(self): data = format_request_data(market=self.market) r = self.http_client.request(self.TYPES_ENDPOINT, data) return r.get('types')
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')
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')
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
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)
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')
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)
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)