From 0a885556e407d873ceb6489b5f428af6af2394a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B4natas=20Santos?= Date: Tue, 22 Aug 2023 15:29:34 -0300 Subject: [PATCH] Add `Users.send_verification_email()` method --- tests/test_users.py | 12 ++++++++++++ workos/users.py | 27 ++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/tests/test_users.py b/tests/test_users.py index 01f84ede..033cbb16 100644 --- a/tests/test_users.py +++ b/tests/test_users.py @@ -324,3 +324,15 @@ def test_complete_password_reset(self, capture_and_mock_request, mock_user): assert response["id"] == "user_01H7ZGXFP5C6BBQY6Z7277ZCT0" assert request["json"]["token"] == token assert request["json"]["new_password"] == new_password + + def test_send_verification_email(self, capture_and_mock_request, mock_user): + user = "user_01H7ZGXFP5C6BBQY6Z7277ZCT0" + + url, _ = capture_and_mock_request("post", mock_user, 200) + + response = self.users.send_verification_email(user=user) + + assert url[0].endswith( + "users/user_01H7ZGXFP5C6BBQY6Z7277ZCT0/send_verification_email" + ) + assert response["id"] == "user_01H7ZGXFP5C6BBQY6Z7277ZCT0" diff --git a/workos/users.py b/workos/users.py index 436d6114..1c1acd70 100644 --- a/workos/users.py +++ b/workos/users.py @@ -20,6 +20,7 @@ USER_SESSION_TOKEN_PATH = "users/session/token" USER_PASSWORD_RESET_CHALLENGE_PATH = "users/password_reset_challenge" USER_PASSWORD_RESET_PATH = "users/password_reset" +USER_SEND_VERIFICATION_EMAIL_PATH = "users/{0}/send_verification_email" RESPONSE_LIMIT = 10 @@ -390,7 +391,7 @@ def complete_password_reset( new_password (str): The new password to be set for the user. Returns: - dict: User response from WorkOS. + dict: User response from WorkOS. """ headers = {} @@ -409,3 +410,27 @@ def complete_password_reset( ) return WorkOSUser.construct_from_response(response).to_dict() + + def send_verification_email( + self, + user, + ): + """Sends a verification email to the provided user. + + Kwargs: + user (str): The unique ID of the User whose email address will be verified. + + Returns: + dict: User response from WorkOS. + """ + + headers = {} + + response = self.request_helper.request( + USER_SEND_VERIFICATION_EMAIL_PATH.format(user), + method=REQUEST_METHOD_POST, + headers=headers, + token=workos.api_key, + ) + + return WorkOSUser.construct_from_response(response).to_dict()