improvments
This commit is contained in:
@@ -66,20 +66,21 @@ class Wallabag(object):
|
|||||||
necessary things to query the API
|
necessary things to query the API
|
||||||
:return json data
|
:return json data
|
||||||
"""
|
"""
|
||||||
if method in ('get', 'post', 'patch', 'delete', 'put', 'get_token'):
|
if method in ('get', 'post', 'patch', 'delete', 'put'):
|
||||||
|
full_path = self.get_host() + path
|
||||||
if method == 'get':
|
if method == 'get':
|
||||||
r = requests.get(self.get_host() + path, params=params)
|
r = requests.get(full_path, params=params)
|
||||||
elif method == 'post':
|
elif method == 'post':
|
||||||
r = requests.post(self.get_host() + path, data=params)
|
r = requests.post(full_path, data=params)
|
||||||
elif method == 'patch':
|
elif method == 'patch':
|
||||||
r = requests.patch(self.get_host() + path, data=params)
|
r = requests.patch(full_path, data=params)
|
||||||
elif method == 'delete':
|
elif method == 'delete':
|
||||||
r = requests.delete(self.get_host() + path, headers=params)
|
r = requests.delete(full_path, headers=params)
|
||||||
elif method == 'put':
|
elif method == 'put':
|
||||||
r = requests.put(self.get_host() + path, params=params)
|
r = requests.put(full_path, params=params)
|
||||||
return self.handle_json_response(r)
|
return self.handle_json_response(r)
|
||||||
else:
|
else:
|
||||||
raise ValueError('method expected : get, post, patch, delete or put')
|
raise ValueError('method expected: get, post, patch, delete, put')
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def handle_json_response(responses):
|
def handle_json_response(responses):
|
||||||
@@ -99,6 +100,11 @@ class Wallabag(object):
|
|||||||
logging.error("Wallabag: {error}".format(error=error_json))
|
logging.error("Wallabag: {error}".format(error=error_json))
|
||||||
return json_data
|
return json_data
|
||||||
|
|
||||||
|
def __get_attr(self, what, type_attr, value_attr, **kwargs):
|
||||||
|
value = int(kwargs[what]) if type_attr == 'int' else kwargs[what]
|
||||||
|
if what in kwargs and value in value_attr:
|
||||||
|
return value
|
||||||
|
|
||||||
def get_entries(self, **kwargs):
|
def get_entries(self, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@@ -119,7 +125,7 @@ class Wallabag(object):
|
|||||||
:return data related to the ext
|
:return data related to the ext
|
||||||
"""
|
"""
|
||||||
# default values
|
# default values
|
||||||
params = {'access_token': self.token,
|
params = dict({'access_token': self.token,
|
||||||
'archive': 0,
|
'archive': 0,
|
||||||
'star': 0,
|
'star': 0,
|
||||||
'delete': 0,
|
'delete': 0,
|
||||||
@@ -127,16 +133,25 @@ class Wallabag(object):
|
|||||||
'order': 'desc',
|
'order': 'desc',
|
||||||
'page': 1,
|
'page': 1,
|
||||||
'perPage': 30,
|
'perPage': 30,
|
||||||
'tags': []}
|
'tags': []})
|
||||||
|
|
||||||
|
params['archive'] = self.__get_attr(what='archive',
|
||||||
|
type_attr=int,
|
||||||
|
value_attr=(0, 1),
|
||||||
|
**kwargs)
|
||||||
|
params['star'] = self.__get_attr(what='star',
|
||||||
|
type_attr=int,
|
||||||
|
value_attr=(0, 1),
|
||||||
|
**kwargs)
|
||||||
|
params['delete'] = self.__get_attr(what='delete',
|
||||||
|
type_attr=int,
|
||||||
|
value_attr=(0, 1),
|
||||||
|
**kwargs)
|
||||||
|
params['order'] = self.__get_attr(what='order',
|
||||||
|
type_attr=str,
|
||||||
|
value_attr=('asc', 'desc'),
|
||||||
|
**kwargs)
|
||||||
|
|
||||||
if 'archive' in kwargs and int(kwargs['archive']) in (0, 1):
|
|
||||||
params['archive'] = int(kwargs['archive'])
|
|
||||||
if 'star' in kwargs and int(kwargs['star']) in (0, 1):
|
|
||||||
params['star'] = int(kwargs['star'])
|
|
||||||
if 'delete' in kwargs and int(kwargs['delete']) in (0, 1):
|
|
||||||
params['delete'] = int(kwargs['delete'])
|
|
||||||
if 'order' in kwargs and kwargs['order'] in ('asc', 'desc'):
|
|
||||||
params['order'] = kwargs['order']
|
|
||||||
if 'page' in kwargs and isinstance(kwargs['page'], int):
|
if 'page' in kwargs and isinstance(kwargs['page'], int):
|
||||||
params['page'] = kwargs['page']
|
params['page'] = kwargs['page']
|
||||||
if 'perPage' in kwargs and isinstance(kwargs['perPage'], int):
|
if 'perPage' in kwargs and isinstance(kwargs['perPage'], int):
|
||||||
@@ -180,7 +195,8 @@ class Wallabag(object):
|
|||||||
:return data related to the ext
|
:return data related to the ext
|
||||||
"""
|
"""
|
||||||
params = {'access_token': self.token}
|
params = {'access_token': self.token}
|
||||||
url = '/api/entries/{entry}.{ext}'.format(entry=entry, ext=self.format)
|
url = '/api/entries/{entry}.{ext}'.format(entry=entry,
|
||||||
|
ext=self.format)
|
||||||
return self.query(url, "get", **params)
|
return self.query(url, "get", **params)
|
||||||
|
|
||||||
def patch_entries(self, entry, **kwargs):
|
def patch_entries(self, entry, **kwargs):
|
||||||
@@ -207,16 +223,29 @@ class Wallabag(object):
|
|||||||
'tags': [],
|
'tags': [],
|
||||||
'star': 0,
|
'star': 0,
|
||||||
'delete': 0}
|
'delete': 0}
|
||||||
|
|
||||||
if 'title' in kwargs:
|
if 'title' in kwargs:
|
||||||
params['title'] = kwargs['title']
|
params['title'] = kwargs['title']
|
||||||
if 'tags' in kwargs and isinstance(kwargs['tags'], list):
|
if 'tags' in kwargs and isinstance(kwargs['tags'], list):
|
||||||
params['tags'] = ', '.join(kwargs['tags'])
|
params['tags'] = ', '.join(kwargs['tags'])
|
||||||
if 'archive' in kwargs and int(kwargs['archive']) in (0, 1):
|
|
||||||
params['archive'] = int(kwargs['archive'])
|
params['archive'] = self.__get_attr(what='archive',
|
||||||
if 'star' in kwargs and int(kwargs['star']) in (0, 1):
|
type_attr=int,
|
||||||
params['star'] = int(kwargs['star'])
|
value_attr=(0, 1),
|
||||||
if 'delete' in kwargs and int(kwargs['delete']) in (0, 1):
|
**kwargs)
|
||||||
params['delete'] = int(kwargs['delete'])
|
params['star'] = self.__get_attr(what='star',
|
||||||
|
type_attr=int,
|
||||||
|
value_attr=(0, 1),
|
||||||
|
**kwargs)
|
||||||
|
params['delete'] = self.__get_attr(what='delete',
|
||||||
|
type_attr=int,
|
||||||
|
value_attr=(0, 1),
|
||||||
|
**kwargs)
|
||||||
|
params['order'] = self.__get_attr(what='order',
|
||||||
|
type_attr=str,
|
||||||
|
value_attr=('asc', 'desc'),
|
||||||
|
**kwargs)
|
||||||
|
|
||||||
path = '/api/entries/{entry}.{ext}'.format(
|
path = '/api/entries/{entry}.{ext}'.format(
|
||||||
entry=entry, ext=self.format)
|
entry=entry, ext=self.format)
|
||||||
return self.query(path, "patch", **params)
|
return self.query(path, "patch", **params)
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ class TestWallabag(unittest.TestCase):
|
|||||||
params = {'title': 'I change the title',
|
params = {'title': 'I change the title',
|
||||||
'archive': 0,
|
'archive': 0,
|
||||||
'tags': ["bimbo", "pipo"],
|
'tags': ["bimbo", "pipo"],
|
||||||
|
'order': 'asc',
|
||||||
'star': 0,
|
'star': 0,
|
||||||
'delete': 0}
|
'delete': 0}
|
||||||
self.assertTrue(isinstance(entry, int), True)
|
self.assertTrue(isinstance(entry, int), True)
|
||||||
|
|||||||
Reference in New Issue
Block a user