aboutsummaryrefslogtreecommitdiff
path: root/jb/managers
diff options
context:
space:
mode:
authorstuppie2026-09-29 14:55:44 -0600
committerstuppie2026-09-29 14:55:44 -0600
commit814782db6d829c20279cde00cdc1a7a5ef18b74a (patch)
tree403a76095ca3c1f7f6971dff3245319930df5af3 /jb/managers
parent5d26a04de9ae188edc45e77d213202b1ce921be9 (diff)
downloadamt-jb-master.tar.gz
amt-jb-master.zip
If the email already has transitioned, treat this as a login requestHEADmaster
Diffstat (limited to 'jb/managers')
-rw-r--r--jb/managers/email_manager.py6
-rw-r--r--jb/managers/gr_api.py7
-rw-r--r--jb/managers/thl.py8
3 files changed, 14 insertions, 7 deletions
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"])