@@ -678,10 +678,9 @@ def create_campaign(self, name, description, campaign_code, color='Public', is_f
678678 }
679679 return self .create_object (ObjectType .CAMPAIGN , property_dict )
680680
681- def create_or_update_html_paste_email (self , customer_key , category_id , name , subject , pre_header , html , plain_text ):
681+ def create_or_update_html_paste_email (self , category_id , name , subject , html , customer_key = None , plain_text = None , pre_header = None ):
682682 payload = {
683683 "name" : name ,
684- "customerKey" : customer_key ,
685684 "category" : {
686685 "id" : category_id
687686 },
@@ -693,14 +692,8 @@ def create_or_update_html_paste_email(self, customer_key, category_id, name, sub
693692 "html" : {
694693 "content" : html
695694 },
696- "text" : {
697- "content" : plain_text
698- },
699695 "subjectline" : {
700696 "content" : subject
701- },
702- "preheader" : {
703- "content" : pre_header
704697 }
705698 },
706699 "assetType" : {
@@ -715,14 +708,32 @@ def create_or_update_html_paste_email(self, customer_key, category_id, name, sub
715708 }
716709 }
717710 }
711+
712+ if customer_key :
713+ payload ["customerKey" ] = customer_key
714+
715+ if plain_text :
716+ payload ["views" ]["text" ] = {
717+ "content" : plain_text
718+ }
719+
720+ if pre_header :
721+ payload ["views" ]["preheader" ] = {
722+ "content" : pre_header
723+ }
724+
718725 headers = {"Authorization" : "Bearer {}" .format (self .get_client ().authToken )}
719726 url = "{}asset/v1/content/assets" .format (self .get_client ().base_api_url )
720727
721728 # Create Asset
722729 res = requests .post (url , json = payload , headers = headers )
723730 if res .status_code not in range (200 , 300 ): # Creation failed, try Update instead
724- # Retrieve Asset by Customer Key
725- res = requests .get ("{}?$filter=customerKey%20eq%20'{}'" .format (url , customer_key ), headers = headers )
731+ # Retrieve Asset by Customer Key if provided, Name otherwise
732+ if customer_key :
733+ res = requests .get ("{}?$filter=customerKey%20eq%20'{}'" .format (url , customer_key ), headers = headers )
734+ else :
735+ res = requests .get ("{}?$filter=name%20eq%20'{}'" .format (url , name ), headers = headers )
736+
726737 if res .status_code in range (200 , 300 ):
727738 data = res .json ()
728739 if data ["count" ] == 1 : # Asset found, Update Asset
0 commit comments