8000 Add IN Operator for DE Retrieve Rows via REST API · SnapLyte/FuelSDK-Python-Wrapper@66ec7ba · GitHub
[go: up one dir, main page]

Skip to content

Commit 66ec7ba

Browse files
author
Sebastien.Dangelo
committed
Add IN Operator for DE Retrieve Rows via REST API
1 parent 1329903 commit 66ec7ba

File tree

4 files changed

+17
-3
lines changed

4 files changed

+17
-3
lines changed

FuelSDKWrapper.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,10 @@ def search_filter(property_name, operator, value):
257257

258258

259259
def simple_filter(property_name, operator, value):
260+
if operator == Operator.IN and not isinstance(value, list) and not isinstance(value, tuple)\
261+
and not isinstance(value, set) and not isinstance(value, frozenset):
262+
raise ET_API.ETApiError("Search filter with IN operator needs a list as value parameter.")
263+
260264
value_type = 'Value'
261265
if isinstance(value, date) or isinstance(value, datetime):
262266
value_type = 'DateValue'
@@ -295,6 +299,9 @@ def search_filter_for_rest_call(search_filter):
295299
value = search_filter.get('Value', search_filter.get('DateValue'))
296300
if operator == 'like':
297301
value = value.replace('%', '%25')
302+
303+
if operator == 'in':
304+
return "{}%20{}%20('{}')".format(prop, operator, "','".join(value))
298305
return "{}%20{}%20'{}'".format(prop, operator, value)
299306

300307

@@ -308,7 +315,8 @@ def operator_for_rest_call(operator):
308315
'lessThanOrEqual': 'lte',
309316
'like': 'like',
310317
'isNull': 'IS%20NULL',
311-
'isNotNull': 'IS%20NOT%20NULL'
318+
'isNotNull': 'IS%20NOT%20NULL',
319+
'IN': 'in'
312320
}
313321
return operators[operator]
314322

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,12 @@ items, items_count = api.get_data_extension_rows_rest(
180180
max_rows=300
181181
)
182182

183+
items, items_count = api.get_data_extension_rows_rest(
184+
customer_key="DE_CUSTOMER_KEY",
185+
search_filter=simple_filter("first_name", Operator.IN, ["Jane", "John"]),
186+
top=100
187+
)
188+
183189
# Get Email Rendered Preview
184190
res = api.get_objects(
185191
ObjectType.EMAIL,

__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
__title__ = 'FuelSDKWrapper'
2-
__version__ = '1.2.8'
2+
__version__ = '1.2.9'
33
__author__ = 'Seb Angel'
44
__license__ = 'MIT'

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
readme = f.read()
55

66
setup(
7-
version='1.2.8',
7+
version='1.2.9',
88
name='FuelSDKWrapper',
99
description='Simplify and enhance the FuelSDK for Salesforce Marketing Cloud (ExactTarget)',
1010
long_description=readme,

0 commit comments

Comments
 (0)
0