diff options
Diffstat (limited to 'jb/managers')
| -rw-r--r-- | jb/managers/email_manager.py | 6 | ||||
| -rw-r--r-- | jb/managers/gr_api.py | 7 | ||||
| -rw-r--r-- | jb/managers/thl.py | 8 |
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"]) |
