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

Commit d150385

Browse files
refactor: cleanup
1 parent dc29a35 commit d150385

15 files changed

Lines changed: 352 additions & 240 deletions

src/user_management/operations.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
mod accept_invitation;
12
mod authenticate_with_code;
23
mod authenticate_with_email_verification;
34
mod authenticate_with_magic_auth;
@@ -9,8 +10,10 @@ mod create_password_reset;
910
mod create_user;
1011
mod delete_user;
1112
mod enroll_auth_factor;
13+
mod find_invitation_by_token;
1214
mod get_authorization_url;
1315
mod get_email_verification;
16+
mod get_invitation;
1417
mod get_jwks;
1518
mod get_jwks_url;
1619
mod get_logout_url;
@@ -20,16 +23,14 @@ mod get_user;
2023
mod get_user_by_external_id;
2124
mod get_user_identities;
2225
mod list_auth_factors;
26+
mod list_invitations;
2327
mod list_users;
2428
mod reset_password;
25-
mod update_user;
26-
mod send_invitation;
27-
mod get_invitation;
28-
mod get_invitation_by_token;
29-
mod accept_invitation;
3029
mod revoke_invitation;
31-
mod list_invitations;
30+
mod send_invitation;
31+
mod update_user;
3232

33+
pub use accept_invitation::*;
3334
pub use authenticate_with_code::*;
3435
pub use authenticate_with_email_verification::*;
3536
pub use authenticate_with_magic_auth::*;
@@ -41,8 +42,10 @@ pub use create_password_reset::*;
4142
pub use create_user::*;
4243
pub use delete_user::*;
4344
pub use enroll_auth_factor::*;
45+
pub use find_invitation_by_token::*;
4446
pub use get_authorization_url::*;
4547
pub use get_email_verification::*;
48+
pub use get_invitation::*;
4649
pub use get_jwks::*;
4750
pub use get_jwks_url::*;
4851
pub use get_logout_url::*;
@@ -52,12 +55,9 @@ pub use get_user::*;
5255
pub use get_user_by_external_id::*;
5356
pub use get_user_identities::*;
5457
pub use list_auth_factors::*;
58+
pub use list_invitations::*;
5559
pub use list_users::*;
5660
pub use reset_password::*;
57-
pub use update_user::*;
58-
pub use send_invitation::*;
59-
pub use get_invitation::*;
60-
pub use get_invitation_by_token::*;
61-
pub use accept_invitation::*;
6261
pub use revoke_invitation::*;
63-
pub use list_invitations::*;
62+
pub use send_invitation::*;
63+
pub use update_user::*;

src/user_management/operations/accept_invitation.rs

Lines changed: 31 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,21 @@ impl From<AcceptInvitationError> for WorkOsError<AcceptInvitationError> {
1414
}
1515
}
1616

17-
/// [WorkOS Docs: Accept an invitation](https://workos.com/docs/reference/user-management/invitation/accept
17+
/// [WorkOS Docs: Accept an invitation](https://workos.com/docs/reference/user-management/invitation/accept)
1818
#[async_trait]
1919
pub trait AcceptInvitation {
20-
/// Accepts an invitation and, if linked to an organization, activates the users membership in that organization.
20+
/// Accepts an invitation and, if linked to an organization, activates the user's membership in that organization.
2121
///
2222
/// [WorkOS Docs: Accept an invitation](https://workos.com/docs/reference/user-management/invitation/accept)
2323
///
2424
/// # Examples
2525
///
2626
/// ```
27-
/// use std::collections::HashSet;
28-
///
2927
/// # use workos_sdk::WorkOsResult;
3028
/// # use workos_sdk::user_management::*;
31-
/// use workos_sdk::{ApiKey, WorkOs}; ///
32-
/// #
33-
/// use workos_sdk::organizations::OrganizationId;
29+
/// use workos_sdk::{ApiKey, WorkOs};
3430
///
35-
/// async fn run() -> WorkOsResult<(), AcceptInvitationError> {
31+
/// # async fn run() -> WorkOsResult<(), AcceptInvitationError> {
3632
/// let workos = WorkOs::new(&ApiKey::from("sk_example_123456789"));
3733
///
3834
/// let invitation = workos
@@ -44,22 +40,20 @@ pub trait AcceptInvitation {
4440
/// ```
4541
async fn accept_invitation(
4642
&self,
47-
id: &InvitationId,
43+
invitation_id: &InvitationId,
4844
) -> WorkOsResult<Invitation, AcceptInvitationError>;
4945
}
5046

5147
#[async_trait]
5248
impl AcceptInvitation for UserManagement<'_> {
5349
async fn accept_invitation(
5450
&self,
55-
id: &InvitationId,
51+
invitation_id: &InvitationId,
5652
) -> WorkOsResult<Invitation, AcceptInvitationError> {
57-
let url = self
58-
.workos
59-
.base_url()
60-
.join(&format!("/user_management/invitations/{id}/accept"))?;
61-
62-
let invitation = self
53+
let url = self.workos.base_url().join(&format!(
54+
"/user_management/invitations/{invitation_id}/accept"
55+
))?;
56+
let user = self
6357
.workos
6458
.client()
6559
.post(url)
@@ -70,7 +64,7 @@ impl AcceptInvitation for UserManagement<'_> {
7064
.json::<Invitation>()
7165
.await?;
7266

73-
Ok(invitation)
67+
Ok(user)
7468
}
7569
}
7670

@@ -79,6 +73,7 @@ mod test {
7973
use serde_json::json;
8074
use tokio;
8175

76+
use crate::user_management::InvitationId;
8277
use crate::{ApiKey, WorkOs};
8378

8479
use super::*;
@@ -93,27 +88,25 @@ mod test {
9388
.build();
9489

9590
server
96-
.mock(
97-
"POST",
98-
"/user_management/invitations/invitation_01E4ZCR3C56J083X43JQXF3JK5/accept",
99-
)
91+
.mock("POST", "/user_management/invitations/invitation_01E4ZCR3C56J083X43JQXF3JK5/accept")
10092
.match_header("Authorization", "Bearer sk_example_123456789")
10193
.with_status(200)
10294
.with_body(
10395
json!({
104-
"object": "invitation",
105-
"id": "invitation_01E4ZCR3C56J083X43JQXF3JK5",
106-
"email": "marcelina.davis@example.com",
107-
"state": "pending",
108-
"accepted_at": "2021-07-01T19:07:33.155Z",
109-
"revoked_at": null,
110-
"expires_at": "2021-07-01T19:07:33.155Z",
111-
"token": "Z1uX3RbwcIl5fIGJJJCXXisdI",
112-
"accept_invitation_url": "https://your-app.com/invite?invitation_token=Z1uX3RbwcIl5fIGJJJCXXisdI",
113-
"organization_id": "org_01E4ZCR3C56J083X43JQXF3JK5",
114-
"inviter_user_id": "user_01HYGBX8ZGD19949T3BM4FW1C3",
115-
"created_at": "2021-06-25T19:07:33.155Z",
116-
"updated_at": "2021-06-25T19:07:33.155Z"
96+
"object": "invitation",
97+
"id": "invitation_01E4ZCR3C56J083X43JQXF3JK5",
98+
"email": "marcelina.davis@example.com",
99+
"state": "accepted",
100+
"accepted_at": "2021-06-27T19:07:33.155Z",
101+
"revoked_at": null,
102+
"expires_at": "2021-07-01T19:07:33.155Z",
103+
"token": "Z1uX3RbwcIl5fIGJJJCXXisdI",
104+
"accept_invitation_url": "https://your-app.com/invite?invitation_token=Z1uX3RbwcIl5fIGJJJCXXisdI",
105+
"organization_id": "org_01E4ZCR3C56J083X43JQXF3JK5",
106+
"inviter_user_id": "user_01HYGBX8ZGD19949T3BM4FW1C3",
107+
"accepted_user_id": "user_01JBJDMMV04RSWPG30MQE8ADFV",
108+
"created_at": "2021-06-25T19:07:33.155Z",
109+
"updated_at": "2021-06-25T19:07:33.155Z"
117110
})
118111
.to_string(),
119112
)
@@ -126,7 +119,10 @@ mod test {
126119
.await
127120
.unwrap();
128121

129-
assert_eq!(invitation.email, String::from("marcelina.davis@example.com"));
122+
assert_eq!(
123+
invitation.id,
124+
InvitationId::from("invitation_01E4ZCR3C56J083X43JQXF3JK5")
125+
);
130126
assert!(invitation.accepted_at.is_some());
131127
}
132128
}

src/user_management/operations/create_magic_auth.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ pub trait CreateMagicAuth {
3535
/// # Examples
3636
///
3737
/// ```
38-
/// use std::collections::HashSet;
39-
///
4038
/// # use workos_sdk::WorkOsResult;
4139
/// # use workos_sdk::user_management::*;
4240
/// use workos_sdk::{ApiKey, WorkOs};

src/user_management/operations/create_password_reset.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,6 @@ pub trait CreatePasswordReset {
7373
/// # Examples
7474
///
7575
/// ```
76-
/// use std::collections::HashSet;
77-
///
7876
/// # use workos_sdk::WorkOsResult;
7977
/// # use workos_sdk::user_management::*;
8078
/// use workos_sdk::{ApiKey, WorkOs};

src/user_management/operations/create_user.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ pub trait CreateUser {
5151
/// # Examples
5252
///
5353
/// ```
54-
/// use std::collections::HashSet;
55-
///
5654
/// # use workos_sdk::WorkOsResult;
5755
/// # use workos_sdk::user_management::*;
5856
/// use workos_sdk::{ApiKey, WorkOs};

src/user_management/operations/enroll_auth_factor.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,6 @@ pub trait EnrollAuthFactor {
107107
/// # Examples
108108
///
109109
/// ```
110-
/// use std::collections::HashSet;
111-
///
112110
/// # use workos_sdk::WorkOsResult;
113111
/// # use workos_sdk::user_management::*;
114112
/// use workos_sdk::{ApiKey, WorkOs};

src/user_management/operations/get_invitation_by_token.rs renamed to src/user_management/operations/find_invitation_by_token.rs

Lines changed: 36 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,62 +4,57 @@ use thiserror::Error;
44
use crate::user_management::{Invitation, InvitationToken, UserManagement};
55
use crate::{ResponseExt, WorkOsError, WorkOsResult};
66

7-
/// An error returned from [`GetInvitationByToken`].
7+
/// An error returned from [`FindInvitationByToken`].
88
#[derive(Debug, Error)]
9-
pub enum GetInvitationByTokenError {}
9+
pub enum FindInvitationByTokenError {}
1010

11-
impl From<GetInvitationByTokenError> for WorkOsError<GetInvitationByTokenError> {
12-
fn from(err: GetInvitationByTokenError) -> Self {
11+
impl From<FindInvitationByTokenError> for WorkOsError<FindInvitationByTokenError> {
12+
fn from(err: FindInvitationByTokenError) -> Self {
1313
Self::Operation(err)
1414
}
1515
}
1616

1717
/// [WorkOS Docs: Find an invitation by token](https://workos.com/docs/reference/user-management/invitation/find-by-token)
1818
#[async_trait]
19-
pub trait GetInvitationByToken {
19+
pub trait FindInvitationByToken {
2020
/// Retrieve an existing invitation using the token.
2121
///
2222
/// [WorkOS Docs: Find an invitation by token](https://workos.com/docs/reference/user-management/invitation/find-by-token)
2323
///
2424
/// # Examples
2525
///
2626
/// ```
27-
/// use std::collections::HashSet;
28-
///
2927
/// # use workos_sdk::WorkOsResult;
3028
/// # use workos_sdk::user_management::*;
3129
/// use workos_sdk::{ApiKey, WorkOs};
32-
/// #
33-
/// use workos_sdk::organizations::OrganizationId;
3430
///
35-
/// async fn run() -> WorkOsResult<(), GetInvitationByTokenError> {
31+
/// # async fn run() -> WorkOsResult<(), FindInvitationByTokenError> {
3632
/// let workos = WorkOs::new(&ApiKey::from("sk_example_123456789"));
3733
///
3834
/// let invitation = workos
3935
/// .user_management()
40-
/// .get_invitation_by_token(&InvitationToken::from("Z1uX3RbwcIl5fIGJJJCXXisdI"))
36+
/// .find_invitation_by_token(&InvitationToken::from("Z1uX3RbwcIl5fIGJJJCXXisdI"))
4137
/// .await?;
4238
/// # Ok(())
4339
/// # }
4440
/// ```
45-
async fn get_invitation_by_token(
41+
async fn find_invitation_by_token(
4642
&self,
4743
token: &InvitationToken,
48-
) -> WorkOsResult<Invitation, GetInvitationByTokenError>;
44+
) -> WorkOsResult<Invitation, FindInvitationByTokenError>;
4945
}
5046

5147
#[async_trait]
52-
impl GetInvitationByToken for UserManagement<'_> {
53-
async fn get_invitation_by_token(
48+
impl FindInvitationByToken for UserManagement<'_> {
49+
async fn find_invitation_by_token(
5450
&self,
5551
token: &InvitationToken,
56-
) -> WorkOsResult<Invitation, GetInvitationByTokenError> {
52+
) -> WorkOsResult<Invitation, FindInvitationByTokenError> {
5753
let url = self
5854
.workos
5955
.base_url()
60-
.join(&format!("user_management/invitations/by_token/{token}"))?;
61-
62-
let invitation = self
56+
.join(&format!("/user_management/invitations/by_token/{token}"))?;
57+
let organization = self
6358
.workos
6459
.client()
6560
.get(url)
@@ -70,7 +65,7 @@ impl GetInvitationByToken for UserManagement<'_> {
7065
.json::<Invitation>()
7166
.await?;
7267

73-
Ok(invitation)
68+
Ok(organization)
7469
}
7570
}
7671

@@ -79,12 +74,12 @@ mod test {
7974
use serde_json::json;
8075
use tokio;
8176

82-
use crate::{ApiKey, WorkOs};
83-
use crate::user_management::InvitationId;
77+
use crate::{ApiKey, WorkOs, user_management::InvitationId};
78+
8479
use super::*;
8580

8681
#[tokio::test]
87-
async fn it_calls_the_get_invitation_by_token_endpoint() {
82+
async fn it_calls_the_find_invitation_by_token_endpoint() {
8883
let mut server = mockito::Server::new_async().await;
8984

9085
let workos = WorkOs::builder(&ApiKey::from("sk_example_123456789"))
@@ -101,19 +96,19 @@ mod test {
10196
.with_status(200)
10297
.with_body(
10398
json!({
104-
"object": "invitation",
105-
"id": "invitation_01E4ZCR3C56J083X43JQXF3JK5",
106-
"email": "marcelina.davis@example.com",
107-
"state": "pending",
108-
"accepted_at": null,
109-
"revoked_at": null,
110-
"expires_at": "2021-07-01T19:07:33.155Z",
111-
"token": "Z1uX3RbwcIl5fIGJJJCXXisdI",
112-
"accept_invitation_url": "https://your-app.com/invite?invitation_token=Z1uX3RbwcIl5fIGJJJCXXisdI",
113-
"organization_id": "org_01E4ZCR3C56J083X43JQXF3JK5",
114-
"inviter_user_id": "user_01HYGBX8ZGD19949T3BM4FW1C3",
115-
"created_at": "2021-06-25T19:07:33.155Z",
116-
"updated_at": "2021-06-25T19:07:33.155Z"
99+
"object": "invitation",
100+
"id": "invitation_01E4ZCR3C56J083X43JQXF3JK5",
101+
"email": "marcelina.davis@example.com",
102+
"state": "pending",
103+
"accepted_at": null,
104+
"revoked_at": null,
105+
"expires_at": "2021-07-01T19:07:33.155Z",
106+
"token": "Z1uX3RbwcIl5fIGJJJCXXisdI",
107+
"accept_invitation_url": "https://your-app.com/invite?invitation_token=Z1uX3RbwcIl5fIGJJJCXXisdI",
108+
"organization_id": "org_01E4ZCR3C56J083X43JQXF3JK5",
109+
"inviter_user_id": "user_01HYGBX8ZGD19949T3BM4FW1C3",
110+
"created_at": "2021-06-25T19:07:33.155Z",
111+
"updated_at": "2021-06-25T19:07:33.155Z"
117112
})
118113
.to_string(),
119114
)
@@ -122,10 +117,13 @@ mod test {
122117

123118
let invitation = workos
124119
.user_management()
125-
.get_invitation_by_token(&InvitationToken::from("Z1uX3RbwcIl5fIGJJJCXXisdI"))
120+
.find_invitation_by_token(&InvitationToken::from("Z1uX3RbwcIl5fIGJJJCXXisdI"))
126121
.await
127122
.unwrap();
128123

129-
assert_eq!(invitation.id, InvitationId::from("invitation_01E4ZCR3C56J083X43JQXF3JK5"));
124+
assert_eq!(
125+
invitation.id,
126+
InvitationId::from("invitation_01E4ZCR3C56J083X43JQXF3JK5")
127+
)
130128
}
131129
}

0 commit comments

Comments
 (0)