diff --git a/tableauserverclient/server/request_options.py b/tableauserverclient/server/request_options.py index 7e1e6a808..a1300ea2a 100644 --- a/tableauserverclient/server/request_options.py +++ b/tableauserverclient/server/request_options.py @@ -44,17 +44,17 @@ class Direction: Asc = 'asc' def __init__(self, pagenumber=1, pagesize=100): - self.pagenumber = pagenumber - self.pagesize = pagesize + self.pagenumber = to_int("pagenumber", pagenumber) + self.pagesize = to_int("pagesize", pagesize) self.sort = set() self.filter = set() def page_size(self, page_size): - self.pagesize = page_size + self.pagesize = to_int("pagesize", page_size) return self def page_number(self, page_number): - self.pagenumber = page_number + self.pagenumber = to_int("pagenumber", page_number) return self def apply_query_params(self, url): @@ -98,8 +98,15 @@ def _append_view_filters(self, params): class CSVRequestOptions(_FilterOptionsBase): + def __init__(self, maxage=None): + super(CSVRequestOptions, self).__init__() + self.max_age = to_int("maxage", maxage) + def apply_query_params(self, url): params = [] + if self.max_age: + params.append('maxAge={0}'.format(self.max_age)) + self._append_view_filters(params) return "{0}?{1}".format(url, '&'.join(params)) @@ -112,7 +119,7 @@ class Resolution: def __init__(self, imageresolution=None, maxage=None): super(ImageRequestOptions, self).__init__() self.image_resolution = imageresolution - self.max_age = maxage + self.max_age = to_int("maxage", maxage) def apply_query_params(self, url): params = [] @@ -146,10 +153,11 @@ class Orientation: Portrait = "portrait" Landscape = "landscape" - def __init__(self, page_type=None, orientation=None): + def __init__(self, page_type=None, orientation=None, maxage=None): super(PDFRequestOptions, self).__init__() self.page_type = page_type self.orientation = orientation + self.max_age = to_int("maxage", maxage) def apply_query_params(self, url): params = [] @@ -159,6 +167,17 @@ def apply_query_params(self, url): if self.orientation: params.append('orientation={0}'.format(self.orientation)) + if self.max_age: + params.append('maxAge={0}'.format(self.max_age)) + self._append_view_filters(params) return "{0}?{1}".format(url, '&'.join(params)) + + +def to_int(name, value): + try: + return int(value) + except ValueError: + print("Integer value expected for the '{}' parameter, but got {}".format(name, value)) + raise