diff --git a/admitad/items/__init__.py b/admitad/items/__init__.py index 2fd1467..ce089d6 100644 --- a/admitad/items/__init__.py +++ b/admitad/items/__init__.py @@ -17,3 +17,4 @@ from admitad.items.retag import * from admitad.items.broken_links import * from admitad.items.tickets import * +from admitad.items.short_links import * diff --git a/admitad/items/campaigns.py b/admitad/items/campaigns.py index 9633c6c..1aa15ce 100644 --- a/admitad/items/campaigns.py +++ b/admitad/items/campaigns.py @@ -83,12 +83,19 @@ def get(self, _id, **kwargs): offset (int) """ + filtering = { + 'filter_by': kwargs, + 'available': { + 'has_tool': lambda x: Item.sanitize_string_array(x, 'has_tool', blank=True), + 'connection_status': lambda x: Item.sanitize_string_value(x, 'connection_status', blank=True), + } + } request_data = { 'url': self.URL, 'website_id': Item.sanitize_id(_id) } - return self.transport.get().set_pagination(**kwargs).request(**request_data) + return self.transport.get().set_pagination(**kwargs).set_filtering(filtering).request(**request_data) def getOne(self, _id, c_id, **kwargs): """ diff --git a/admitad/items/coupons.py b/admitad/items/coupons.py index 7f42f23..fc5bbbc 100644 --- a/admitad/items/coupons.py +++ b/admitad/items/coupons.py @@ -19,6 +19,11 @@ class CouponsBase(Item): 'campaign_category': lambda x: Item.sanitize_integer_array(x, 'campaign_category', blank=True), 'category': lambda x: Item.sanitize_integer_array(x, 'category', blank=True), 'type': lambda x: Item.sanitize_string_value(x, 'type', blank=True), + 'is_exclusive': lambda x: Item.sanitize_bool_value(x, 'is_exclusive', blank=True), + 'is_unique': lambda x: Item.sanitize_bool_value(x, 'is_unique', blank=True), + 'is_personal': lambda x: Item.sanitize_bool_value(x, 'is_personal', blank=True), + 'is_planned': lambda x: Item.sanitize_bool_value(x, 'is_planned', blank=True), + 'search': lambda x: Item.sanitize_string_value(x, 'search', blank=True), } diff --git a/admitad/items/deeplinks.py b/admitad/items/deeplinks.py index ecaa49c..eb34eeb 100644 --- a/admitad/items/deeplinks.py +++ b/admitad/items/deeplinks.py @@ -17,7 +17,7 @@ class DeeplinksManage(Item): CREATE_FIELDS = { 'ulp': lambda x: Item.sanitize_string_array(x, 'ulp'), - 'subid': lambda x: Item.sanitize_string_value(x, 'subid', max_length=30), + 'subid': lambda x: Item.sanitize_string_value(x, 'subid', max_length=30, blank=True), # todo: subid[1-4] } diff --git a/admitad/items/short_links.py b/admitad/items/short_links.py new file mode 100644 index 0000000..37b5b27 --- /dev/null +++ b/admitad/items/short_links.py @@ -0,0 +1,30 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from admitad.items.base import Item + + +__all__ = [ + 'ShortLinks' +] + + +class ShortLinks(Item): + + SCOPE = 'short_links' + + URL = Item.prepare_url('shortlink/modify/') + + GET_FIELDS = { + 'link': lambda x: Item.sanitize_string_value(x, 'link'), + } + + def post(self, link, **kwargs): + """ + Args: + link (str) + + """ + data = Item.sanitize_fields(self.GET_FIELDS, link=link) + + return self.transport.post().set_data(data).request(url=self.URL) diff --git a/setup.py b/setup.py index 5c1e859..714e778 100644 --- a/setup.py +++ b/setup.py @@ -3,13 +3,13 @@ setup( name="admitad", packages=['admitad', 'admitad.items'], - version='1.2.0', + version='1.3.0', author='Admitad Dev Bot', author_email='dev@admitad.com', description='A Python wrapper around the Admitad API', license='MIT', url='https://github.com/admitad/admitad-python-api', - download_url='https://github.com/admitad/admitad-python-api/tarball/1.2.0', + download_url='https://github.com/admitad/admitad-python-api/tarball/1.3.0', keywords=['admitad'], install_requires=['requests>=2.0', 'future'], tests_require=['nose2', 'responses'],