@@ -512,7 +512,7 @@ def run_async_call(self, endpoint, payload):
512
512
return False
513
513
514
514
def create_data_extension_rows (self , data_extension_key , keys_list , values_list ):
515
- endpoint = '{}/data/ v1/async/dataextensions/ key:{}/rows ' .format (self .client .base_api_url , data_extension_key )
515
+ endpoint = '{}hub/ v1/dataevents/ key:{}/rowset ' .format (self .client .base_api_url , data_extension_key )
516
516
517
517
if len (keys_list ) != len (values_list ):
518
518
raise self .ETApiError ("keys_list and values_list must be the same size." )
@@ -521,9 +521,10 @@ def create_data_extension_rows(self, data_extension_key, keys_list, values_list)
521
521
for i , values in enumerate (values_list ):
522
522
payload .append ({"keys" : keys_list [i ], "values" : values })
523
523
524
- res = self .run_async_call (endpoint , payload )
524
+ token = self .get_client ().authToken
525
+ res = requests .post (endpoint , json = payload , headers = {"Authorization" : "Bearer {}" .format (token )})
525
526
526
- if res : # Success
527
+ if res . status_code in range ( 200 , 300 ) : # Success
527
528
return len (values_list )
528
529
else : # Error: Try inserting row by row
529
530
rows_inserted = 0
@@ -536,6 +537,22 @@ def create_data_extension_rows(self, data_extension_key, keys_list, values_list)
536
537
rows_inserted += 1
537
538
return rows_inserted
538
539
540
+ def create_data_extension_rows_async (self , data_extension_key , items_list ):
541
+ endpoint = '{}/data/v1/async/dataextensions/key:{}/rows' .format (self .client .base_api_url , data_extension_key )
542
+
543
+ payload = {'items' : items_list }
544
+ res = self .run_async_call (endpoint , payload )
545
+
546
+ if res : # Success
547
+ return len (items_list )
548
+ else : # Error: Try inserting row by row
549
+ rows_inserted = 0
550
+ for property_dict in items_list :
551
+ res = self .create_object (ObjectType .DATA_EXTENSION_ROW , property_dict , data_extension_key )
552
+ if res .code == 200 :
553
+ rows_inserted += 1
554
+ return rows_inserted
555
+
539
556
def update_data_extension_rows (self , data_extension_key , rows_list ):
540
557
endpoint = '{}/data/v1/async/dataextensions/key:{}/rows' .format (self .client .base_api_url , data_extension_key )
541
558
payload = {'items' : rows_list }
@@ -964,3 +981,24 @@ def get_contacts_counts(self):
964
981
url = "https://www.exacttargetapis.com/contacts/v1/addresses/count/"
965
982
res = requests .post (url , headers = {"Authorization" : "Bearer {}" .format (token )})
966
983
return res .json ().get ("totalCount" , - 1 )
984
+
985
+ def get_email_preview (self , email_id , list_id = None , data_extension_key = None , contact_id = None , contact_key = None ):
986
+ url = "{}guide/v1/emails/{}" .format (self .get_client ().base_api_url , email_id )
987
+
988
+ if list_id :
989
+ url += "/lists/{}" .format (list_id )
990
+ elif data_extension_key :
991
+ url += "/dataExtension/key:{}" .format (data_extension_key )
992
+ else :
993
+ raise self .ETApiError ("list_id or data_extension_key required." )
994
+
995
+ if contact_id :
996
+ url += "/contacts/{}/preview?kind=html,text" .format (contact_id )
997
+ elif contact_key :
998
+ url += "/contacts/key:{}/preview?kind=html,text" .format (contact_key )
999
+ else :
1000
+ raise self .ETApiError ("contact_id or contact_key required." )
1001
+
1002
+ token = self .get_client ().authToken
1003
+ res = requests .post (url , headers = {"Authorization" : "Bearer {}" .format (token )})
1004
+ return res .json ()
0 commit comments