1212from time import time
1313
1414from api .models .run import HashParams
15- from api .models .send_newsletter import SendNewsletterParams
15+ from api .models .send_newsletter import SendNewsletterParams , ListmonkReturnDataList
1616from api .models .exceptions import CredentialsInvalid
1717from api .factory .runs import get_hash_runs
1818from source .database import get_db_handler
3030
3131
3232# noinspection PyShadowingBuiltins
33- @newsletter .post ("/{post_id}" , summary = "post run" , description = "post run via newsletter" )
33+ @newsletter .post ("/{post_id}" , response_model = ListmonkReturnDataList , summary = "post run" ,
34+ description = "post run via newsletter" )
3435async def get_run (post_id : int , params : SendNewsletterParams ):
3536 """
3637 To post/update a run to listmonk
@@ -127,12 +128,15 @@ async def get_run(post_id: int, params: SendNewsletterParams):
127128 "name" : f"{ subject_prefix } { event .event_name } " ,
128129 "subject" : f"{ subject_prefix } [{ event .kennel_name } ] Run #{ event .run_number } , "
129130 f"{ event .start_date :%A %d %B %Y, %H:%M} @ { event .location_name } " ,
130- "lists" : [ listmonk_handler .config .list_id ] ,
131+ "lists" : listmonk_handler .config .list_ids ,
131132 "type" : "regular" ,
132133 "content_type" : "html" ,
133134 "body" : campaign_body
134135 }
135136
137+ if listmonk_handler .config .campaign_template_id is not None :
138+ campaign_data ["template_id" ] = listmonk_handler .config .campaign_template_id
139+
136140 # create listmonk campaign
137141 campaign_result = listmonk_handler .add_campaign (campaign_data )
138142
@@ -142,17 +146,18 @@ async def get_run(post_id: int, params: SendNewsletterParams):
142146 campaign_id = grab (campaign_result , "data.id" )
143147
144148 # send campaign
145- campaign_running_result = listmonk_handler .set_campaign_status (campaign_id , "running" )
149+ if listmonk_handler .config .send_campaign is True :
150+ campaign_result = listmonk_handler .set_campaign_status (campaign_id , "running" )
146151
147- if campaign_running_result is None :
148- raise HTTPException (status_code = 503 , detail = f"Upstream request failed, unable to start campaign" )
152+ if campaign_result is None :
153+ raise HTTPException (status_code = 503 , detail = f"Upstream request failed, unable to start campaign" )
149154
150155 # write campaign id to WP database
151156 if post_campaign_id is not None :
152157 db_handler .update_post_meta (post_id , "listmonk_campaign_id" , campaign_id )
153158 else :
154159 db_handler .add_post_meta (post_id , "listmonk_campaign_id" , campaign_id )
155160
156- return { "status" : "ok" }
161+ return ListmonkReturnDataList ( ** campaign_result )
157162
158163# EOF
0 commit comments