Skip to content
This repository was archived by the owner on May 13, 2026. It is now read-only.

Commit 23253ea

Browse files
fix(user-management): add reset password response (#46)
1 parent 4625149 commit 23253ea

1 file changed

Lines changed: 30 additions & 18 deletions

File tree

src/user_management/operations/reset_password.rs

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ pub struct ResetPasswordParams<'a> {
1616
pub new_password: &'a str,
1717
}
1818

19+
/// The response for [`ResetPassword`].
20+
#[derive(Debug, Deserialize)]
21+
pub struct ResetPasswordResponse {
22+
/// The corresponding user object.
23+
pub user: User,
24+
}
25+
1926
/// An error returned from [`ResetPassword`].
2027
#[derive(Debug, Error, Deserialize)]
2128
#[serde(tag = "code", rename_all = "snake_case")]
@@ -113,7 +120,7 @@ pub trait ResetPassword {
113120
/// # async fn run() -> WorkOsResult<(), ResetPasswordError> {
114121
/// let workos = WorkOs::new(&ApiKey::from("sk_example_123456789"));
115122
///
116-
/// let user = workos
123+
/// let response = workos
117124
/// .user_management()
118125
/// .reset_password(&ResetPasswordParams {
119126
/// token: &PasswordResetToken::from("stpIJ48IFJt0HhSIqjf8eppe0"),
@@ -126,21 +133,21 @@ pub trait ResetPassword {
126133
async fn reset_password(
127134
&self,
128135
params: &ResetPasswordParams<'_>,
129-
) -> WorkOsResult<User, ResetPasswordError>;
136+
) -> WorkOsResult<ResetPasswordResponse, ResetPasswordError>;
130137
}
131138

132139
#[async_trait]
133140
impl ResetPassword for UserManagement<'_> {
134141
async fn reset_password(
135142
&self,
136143
params: &ResetPasswordParams<'_>,
137-
) -> WorkOsResult<User, ResetPasswordError> {
144+
) -> WorkOsResult<ResetPasswordResponse, ResetPasswordError> {
138145
let url = self
139146
.workos
140147
.base_url()
141148
.join("/user_management/password_reset/confirm")?;
142149

143-
let user = self
150+
let response = self
144151
.workos
145152
.client()
146153
.post(url)
@@ -151,10 +158,10 @@ impl ResetPassword for UserManagement<'_> {
151158
.handle_unauthorized_error()?
152159
.handle_reset_password_error()
153160
.await?
154-
.json::<User>()
161+
.json::<ResetPasswordResponse>()
155162
.await?;
156163

157-
Ok(user)
164+
Ok(response)
158165
}
159166
}
160167

@@ -183,23 +190,25 @@ mod test {
183190
.with_status(201)
184191
.with_body(
185192
json!({
186-
"object": "user",
187-
"id": "user_01E4ZCR3C56J083X43JQXF3JK5",
188-
"email": "marcelina.davis@example.com",
189-
"first_name": "Marcelina",
190-
"last_name": "Davis",
191-
"email_verified": true,
192-
"profile_picture_url": "https://workoscdn.com/images/v1/123abc",
193-
"metadata": {},
194-
"created_at": "2021-06-25T19:07:33.155Z",
195-
"updated_at": "2021-06-25T19:07:33.155Z"
193+
"user": {
194+
"object": "user",
195+
"id": "user_01E4ZCR3C56J083X43JQXF3JK5",
196+
"email": "marcelina.davis@example.com",
197+
"first_name": "Marcelina",
198+
"last_name": "Davis",
199+
"email_verified": true,
200+
"profile_picture_url": "https://workoscdn.com/images/v1/123abc",
201+
"metadata": {},
202+
"created_at": "2021-06-25T19:07:33.155Z",
203+
"updated_at": "2021-06-25T19:07:33.155Z"
204+
}
196205
})
197206
.to_string(),
198207
)
199208
.create_async()
200209
.await;
201210

202-
let user = workos
211+
let response = workos
203212
.user_management()
204213
.reset_password(&ResetPasswordParams {
205214
token: &PasswordResetToken::from("stpIJ48IFJt0HhSIqjf8eppe0"),
@@ -208,6 +217,9 @@ mod test {
208217
.await
209218
.unwrap();
210219

211-
assert_eq!(user.id, UserId::from("user_01E4ZCR3C56J083X43JQXF3JK5"))
220+
assert_eq!(
221+
response.user.id,
222+
UserId::from("user_01E4ZCR3C56J083X43JQXF3JK5")
223+
)
212224
}
213225
}

0 commit comments

Comments
 (0)