diff options
Diffstat (limited to 'jb/managers/email_manager.py')
| -rw-r--r-- | jb/managers/email_manager.py | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/jb/managers/email_manager.py b/jb/managers/email_manager.py index 78acc9d..7298c60 100644 --- a/jb/managers/email_manager.py +++ b/jb/managers/email_manager.py @@ -10,8 +10,7 @@ assert settings.mautic_api_key auth_headers = {"Authorization": f"Basic {settings.mautic_api_key.get_secret_value()}"} -def get_or_create_contact(email: str, amt_worker_id: str | None = None): - # amt_worker_id = "A2Z2FRA128FNW" +def get_or_create_contact(email: str, amt_worker_id: str | None = None) -> int: body = {"email": email} if amt_worker_id: body["amt_worker_id"] = amt_worker_id @@ -20,8 +19,7 @@ def get_or_create_contact(email: str, amt_worker_id: str | None = None): json=body, headers=auth_headers, ).json() - contact_id = res["contact"]["id"] - return contact_id + return int(res["contact"]["id"]) def send_login_email_from_url(mautic_url: str, magic_link: str) -> None: @@ -34,6 +32,7 @@ def send_login_email_from_url(mautic_url: str, magic_link: str) -> None: } body = {"tokens": email_tokens} response = requests.post(url=mautic_url, json=body, headers=auth_headers) + try: response.raise_for_status() except requests.exceptions.HTTPError: @@ -41,20 +40,21 @@ def send_login_email_from_url(mautic_url: str, magic_link: str) -> None: print(response.text) raise d = response.json() + assert d.get("success"), f"Failed to send email: {d.get('failed')}" print("Email sent successfully") -def send_login_email(email: str, magic_token: str): +def send_login_email(email: str, magic_token: str) -> None: contact_id = get_or_create_contact(email=email) mautic_url = ( f"{MAUTIC_BASE_URL}/api/emails/{EMAIL_TEMPLATE_ID}/contact/{contact_id}/send" ) magic_link = f"{settings.base_url}auth/magic-link/?token={magic_token}" - return send_login_email_from_url(mautic_url, magic_link) + send_login_email_from_url(mautic_url, magic_link) -def send_amt_link_email(email: str, magic_token: str): +def send_amt_link_email(email: str, magic_token: str) -> None: # Don't actually associate the email with the worker ID # until they click the link contact_id = get_or_create_contact(email=email) @@ -62,4 +62,4 @@ def send_amt_link_email(email: str, magic_token: str): f"{MAUTIC_BASE_URL}/api/emails/{EMAIL_TEMPLATE_ID}/contact/{contact_id}/send" ) magic_link = f"{settings.base_url}auth/link-amt/?token={magic_token}" - return send_login_email_from_url(mautic_url, magic_link) + send_login_email_from_url(mautic_url, magic_link) |
