From 814782db6d829c20279cde00cdc1a7a5ef18b74a Mon Sep 17 00:00:00 2001 From: stuppie Date: Tue, 29 Sep 2026 14:55:44 -0600 Subject: If the email already has transitioned, treat this as a login request --- jb/managers/email_manager.py | 6 +++--- jb/managers/gr_api.py | 7 +++++++ jb/managers/thl.py | 8 ++++---- 3 files changed, 14 insertions(+), 7 deletions(-) (limited to 'jb/managers') diff --git a/jb/managers/email_manager.py b/jb/managers/email_manager.py index 59b74d3..8a796e3 100644 --- a/jb/managers/email_manager.py +++ b/jb/managers/email_manager.py @@ -6,7 +6,7 @@ from generalresearch.config import is_debug from generalresearch.currency import USDCent from generalresearch.models.thl.wallet.cashout_method import ( CashoutMethodOut, - CashoutRequestInfo, + CashoutRequestDetail, ) from jb.config import settings @@ -98,7 +98,7 @@ def send_cashout_confirmation_email( def format_cashout_status_email_tokens( - cashout: CashoutRequestInfo, + cashout: CashoutRequestDetail, ) -> dict[str, str]: tx = cashout.transaction_info or {} assert cashout.id is not None @@ -147,7 +147,7 @@ def format_tango_credentials(transaction: dict[str, Any]) -> str: return "".join(rows) -def send_cashout_status_email(email: str, cashout: CashoutRequestInfo) -> None: +def send_cashout_status_email(email: str, cashout: CashoutRequestDetail) -> None: email_tokens = format_cashout_status_email_tokens(cashout) if is_debug(): diff --git a/jb/managers/gr_api.py b/jb/managers/gr_api.py index f0be1a7..164f35a 100644 --- a/jb/managers/gr_api.py +++ b/jb/managers/gr_api.py @@ -90,6 +90,13 @@ class GRApiManager: res = self._request("GET", url).json() return self._parse_user_response(res) + def get_user_if_exists(self, product_user_id: str) -> User | None: + """Retrieve the user's email address and display name.""" + try: + return self.get_user(product_user_id) + except GRApiNotFoundError: + return None + def get_user_by_email(self, email: str) -> User: user = User.model_validate({"email": email}) return self.get_user(user.product_user_id) diff --git a/jb/managers/thl.py b/jb/managers/thl.py index 96f624e..4d29467 100644 --- a/jb/managers/thl.py +++ b/jb/managers/thl.py @@ -6,7 +6,7 @@ from generalresearch.models.thl.payout import UserPayoutEvent from generalresearch.models.thl.task_status import TaskStatusResponse from generalresearch.models.thl.wallet.cashout_method import ( CashoutMethodOut, - CashoutRequestInfo, + CashoutRequestDetail, CashoutRequestResponse, ) @@ -24,7 +24,7 @@ def get_task_status(tsid: str) -> TaskStatusResponse | None: def user_cashout_request( product_user_id: str, amount: USDCent, cashout_method_id: str -) -> CashoutRequestInfo: +) -> CashoutRequestDetail: assert isinstance(amount, USDCent) assert USDCent(0) < amount <= USDCent(100_00) url = f"{settings.fsb_host}{settings.product_id}/cashout/" @@ -123,8 +123,8 @@ def get_wallet_balance_if_non_negative(amt_worker_id: str) -> USDCent | None: return None -def get_cashout_detail(cashout_id: str) -> CashoutRequestInfo: +def get_cashout_detail(cashout_id: str) -> CashoutRequestDetail: url = f"{settings.fsb_host}{settings.product_id}/cashout/{cashout_id}/" res = requests.get(url) assert res.status_code == status.HTTP_200_OK, res.text - return CashoutRequestInfo.model_validate(res.json()["cashout"]) + return CashoutRequestDetail.model_validate(res.json()["cashout"]) -- cgit v1.2.3