diff options
| author | stuppie | 2026-09-23 13:42:03 -0600 |
|---|---|---|
| committer | stuppie | 2026-09-23 13:42:03 -0600 |
| commit | 064a55c754e02da54b13c47028b233b265327518 (patch) | |
| tree | e8e2eef6a138c750640dab6b2239c3d8a6eb4191 /jb/managers/email_manager.py | |
| parent | b1af1375578e41a240a4eedff73209e212a31051 (diff) | |
| download | amt-jb-064a55c754e02da54b13c47028b233b265327518.tar.gz amt-jb-064a55c754e02da54b13c47028b233b265327518.zip | |
upon login: create_paypal_cashout_method_if_not_exists using user's ip. Upon cashout request: send_cashout_confirmation_email using cashout method info looked up
Diffstat (limited to 'jb/managers/email_manager.py')
| -rw-r--r-- | jb/managers/email_manager.py | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/jb/managers/email_manager.py b/jb/managers/email_manager.py index 410e9a3..8006844 100644 --- a/jb/managers/email_manager.py +++ b/jb/managers/email_manager.py @@ -1,10 +1,14 @@ import requests from generalresearch.config import is_debug +from generalresearch.currency import USDCent +from generalresearch.models.thl.wallet.cashout_method import CashoutMethodOut from jb.config import settings MAUTIC_BASE_URL = "https://mail.jamesbillings67.com" -EMAIL_TEMPLATE_ID = 1 +LOGIN_EMAIL_TEMPLATE_ID = 1 +# Todo: We need a new template for the cashout confirmation +CASHOUT_EMAIL_TEMPLATE_ID = 3 assert settings.mautic_api_key auth_headers = {"Authorization": f"Basic {settings.mautic_api_key.get_secret_value()}"} @@ -26,11 +30,14 @@ def send_login_email_from_url(mautic_url: str, magic_link: str) -> None: if is_debug(): print("MAGIC_LINK: ", magic_link) return - email_tokens = { "magic_link": magic_link, } - body = {"tokens": email_tokens} + send_email_with_tokens(email_tokens, mautic_url) + + +def send_email_with_tokens(tokens: dict[str, str], mautic_url: str) -> None: + body = {"tokens": tokens} response = requests.post(url=mautic_url, json=body, headers=auth_headers) try: @@ -47,9 +54,7 @@ def send_login_email_from_url(mautic_url: str, magic_link: str) -> None: 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" - ) + mautic_url = f"{MAUTIC_BASE_URL}/api/emails/{LOGIN_EMAIL_TEMPLATE_ID}/contact/{contact_id}/send" magic_link = f"{settings.base_url}auth/magic-link/?token={magic_token}" send_login_email_from_url(mautic_url, magic_link) @@ -58,17 +63,27 @@ 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) - mautic_url = ( - f"{MAUTIC_BASE_URL}/api/emails/{EMAIL_TEMPLATE_ID}/contact/{contact_id}/send" - ) + mautic_url = f"{MAUTIC_BASE_URL}/api/emails/{LOGIN_EMAIL_TEMPLATE_ID}/contact/{contact_id}/send" magic_link = f"{settings.base_url}auth/link-amt/?token={magic_token}" send_login_email_from_url(mautic_url, magic_link) -def send_cashout_confirmation_email(email: str, token: str) -> None: +def send_cashout_confirmation_email( + email: str, token: str, cashout_method: CashoutMethodOut, amount: USDCent +) -> None: contact_id = get_or_create_contact(email=email) - mautic_url = ( - f"{MAUTIC_BASE_URL}/api/emails/{EMAIL_TEMPLATE_ID}/contact/{contact_id}/send" - ) + mautic_url = f"{MAUTIC_BASE_URL}/api/emails/{CASHOUT_EMAIL_TEMPLATE_ID}/contact/{contact_id}/send" magic_link = f"{settings.base_url}wallet/cashout/confirm/?token={token}" - send_login_email_from_url(mautic_url, magic_link) + if is_debug(): + print("MAGIC_LINK: ", magic_link) + return + email_tokens = { + "magic_link": magic_link, + "cashout_method_name": cashout_method.name, + "cashout_method_description": cashout_method.description, + "cashout_method_type": cashout_method.type.value, + "amount": amount.to_usd_str(), + } + if cashout_method.image_url: + email_tokens["image_url"] = cashout_method.image_url + send_email_with_tokens(email_tokens, mautic_url) |
