@@ -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]
133140impl 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