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

Commit bfba069

Browse files
refactor: remove params struct from delete operations (#170)
1 parent 645bdbb commit bfba069

9 files changed

Lines changed: 66 additions & 157 deletions

File tree

src/directory_sync/operations/delete_directory.rs

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,9 @@
11
use async_trait::async_trait;
2-
use serde::Serialize;
32
use thiserror::Error;
43

54
use crate::directory_sync::{DirectoryId, DirectorySync};
65
use crate::{ResponseExt, WorkOsError, WorkOsResult};
76

8-
/// The parameters for [`DeleteDirectory`].
9-
#[derive(Debug, Serialize)]
10-
pub struct DeleteDirectoryParams<'a> {
11-
/// Unique identifier for the Directory.
12-
pub directory_id: &'a DirectoryId,
13-
}
14-
157
/// An error returned from [`DeleteDirectory`].
168
#[derive(Debug, Error)]
179
pub enum DeleteDirectoryError {}
@@ -41,29 +33,28 @@ pub trait DeleteDirectory {
4133
///
4234
/// workos
4335
/// .directory_sync()
44-
/// .delete_directory(&DeleteDirectoryParams {
45-
/// directory_id: &DirectoryId::from("directory_01ECAZ4NV9QMV47GW873HDCX74"),
46-
/// })
36+
/// .delete_directory(&DirectoryId::from("directory_01ECAZ4NV9QMV47GW873HDCX74"))
4737
/// .await?;
4838
/// # Ok(())
4939
/// # }
5040
/// ```
5141
async fn delete_directory(
5242
&self,
53-
params: &DeleteDirectoryParams<'_>,
43+
directory_id: &DirectoryId,
5444
) -> WorkOsResult<(), DeleteDirectoryError>;
5545
}
5646

5747
#[async_trait]
5848
impl DeleteDirectory for DirectorySync<'_> {
5949
async fn delete_directory(
6050
&self,
61-
params: &DeleteDirectoryParams<'_>,
51+
directory_id: &DirectoryId,
6252
) -> WorkOsResult<(), DeleteDirectoryError> {
6353
let url = self
6454
.workos
6555
.base_url()
66-
.join(&format!("/directories/{id}", id = params.directory_id))?;
56+
.join(&format!("/directories/{directory_id}"))?;
57+
6758
self.workos
6859
.client()
6960
.delete(url)
@@ -108,9 +99,7 @@ mod test {
10899

109100
let result = workos
110101
.directory_sync()
111-
.delete_directory(&DeleteDirectoryParams {
112-
directory_id: &DirectoryId::from("directory_01ECAZ4NV9QMV47GW873HDCX74"),
113-
})
102+
.delete_directory(&DirectoryId::from("directory_01ECAZ4NV9QMV47GW873HDCX74"))
114103
.await;
115104

116105
assert_matches!(result, Ok(()));

src/organization_domains/operations/delete_organization_domain.rs

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,9 @@
11
use async_trait::async_trait;
2-
use serde::Serialize;
32
use thiserror::Error;
43

54
use crate::organization_domains::{OrganizationDomainId, OrganizationDomains};
65
use crate::{ResponseExt, WorkOsError, WorkOsResult};
76

8-
/// The parameters for [`DeleteOrganizationDomain`].
9-
#[derive(Debug, Serialize)]
10-
pub struct DeleteOrganizationDomainParams<'a> {
11-
/// The ID of the organization_domain.
12-
pub organization_domain_id: &'a OrganizationDomainId,
13-
}
14-
157
/// An error returned from [`DeleteOrganizationDomain`].
168
#[derive(Debug, Error)]
179
pub enum DeleteOrganizationDomainError {}
@@ -41,29 +33,29 @@ pub trait DeleteOrganizationDomain {
4133
///
4234
/// workos
4335
/// .organization_domains()
44-
/// .delete_organization_domain(&DeleteOrganizationDomainParams {
45-
/// organization_domain_id: &OrganizationDomainId::from("org_domain_01HEJXJSTVEDT7T58BM70FMFET"),
46-
/// })
36+
/// .delete_organization_domain(&OrganizationDomainId::from(
37+
/// "org_domain_01HEJXJSTVEDT7T58BM70FMFET"
38+
/// ))
4739
/// .await?;
4840
/// # Ok(())
4941
/// # }
5042
/// ```
5143
async fn delete_organization_domain(
5244
&self,
53-
params: &DeleteOrganizationDomainParams<'_>,
45+
organization_domain_id: &OrganizationDomainId,
5446
) -> WorkOsResult<(), DeleteOrganizationDomainError>;
5547
}
5648

5749
#[async_trait]
5850
impl DeleteOrganizationDomain for OrganizationDomains<'_> {
5951
async fn delete_organization_domain(
6052
&self,
61-
params: &DeleteOrganizationDomainParams<'_>,
53+
organization_domain_id: &OrganizationDomainId,
6254
) -> WorkOsResult<(), DeleteOrganizationDomainError> {
63-
let url = self.workos.base_url().join(&format!(
64-
"/organization_domains/{id}",
65-
id = params.organization_domain_id
66-
))?;
55+
let url = self
56+
.workos
57+
.base_url()
58+
.join(&format!("/organization_domains/{organization_domain_id}"))?;
6759

6860
self.workos
6961
.client()
@@ -107,11 +99,9 @@ mod test {
10799

108100
let result = workos
109101
.organization_domains()
110-
.delete_organization_domain(&DeleteOrganizationDomainParams {
111-
organization_domain_id: &OrganizationDomainId::from(
112-
"org_domain_01HEJXJSTVEDT7T58BM70FMFET",
113-
),
114-
})
102+
.delete_organization_domain(&OrganizationDomainId::from(
103+
"org_domain_01HEJXJSTVEDT7T58BM70FMFET",
104+
))
115105
.await;
116106

117107
assert_matches!(result, Ok(()));

src/organizations/operations/delete_organization.rs

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,9 @@
11
use async_trait::async_trait;
2-
use serde::Serialize;
32
use thiserror::Error;
43

54
use crate::organizations::{OrganizationId, Organizations};
65
use crate::{ResponseExt, WorkOsError, WorkOsResult};
76

8-
/// The parameters for [`DeleteOrganization`].
9-
#[derive(Debug, Serialize)]
10-
pub struct DeleteOrganizationParams<'a> {
11-
/// The ID of the organization.
12-
pub organization_id: &'a OrganizationId,
13-
}
14-
157
/// An error returned from [`DeleteOrganization`].
168
#[derive(Debug, Error)]
179
pub enum DeleteOrganizationError {}
@@ -41,29 +33,27 @@ pub trait DeleteOrganization {
4133
///
4234
/// workos
4335
/// .organizations()
44-
/// .delete_organization(&DeleteOrganizationParams {
45-
/// organization_id: &OrganizationId::from("org_01EHZNVPK3SFK441A1RGBFSHRT"),
46-
/// })
36+
/// .delete_organization(&OrganizationId::from("org_01EHZNVPK3SFK441A1RGBFSHRT"))
4737
/// .await?;
4838
/// # Ok(())
4939
/// # }
5040
/// ```
5141
async fn delete_organization(
5242
&self,
53-
params: &DeleteOrganizationParams<'_>,
43+
organization_id: &OrganizationId,
5444
) -> WorkOsResult<(), DeleteOrganizationError>;
5545
}
5646

5747
#[async_trait]
5848
impl DeleteOrganization for Organizations<'_> {
5949
async fn delete_organization(
6050
&self,
61-
params: &DeleteOrganizationParams<'_>,
51+
organization_id: &OrganizationId,
6252
) -> WorkOsResult<(), DeleteOrganizationError> {
6353
let url = self
6454
.workos
6555
.base_url()
66-
.join(&format!("/organizations/{id}", id = params.organization_id))?;
56+
.join(&format!("/organizations/{organization_id}"))?;
6757

6858
self.workos
6959
.client()
@@ -104,9 +94,7 @@ mod test {
10494

10595
let result = workos
10696
.organizations()
107-
.delete_organization(&DeleteOrganizationParams {
108-
organization_id: &OrganizationId::from("org_01EHZNVPK3SFK441A1RGBFSHRT"),
109-
})
97+
.delete_organization(&OrganizationId::from("org_01EHZNVPK3SFK441A1RGBFSHRT"))
11098
.await;
11199

112100
assert_matches!(result, Ok(()));

src/sso/operations/delete_connection.rs

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,9 @@
11
use async_trait::async_trait;
2-
use serde::Serialize;
32
use thiserror::Error;
43

54
use crate::sso::{ConnectionId, Sso};
65
use crate::{ResponseExt, WorkOsError, WorkOsResult};
76

8-
/// The parameters for [`DeleteConnection`].
9-
#[derive(Debug, Serialize)]
10-
pub struct DeleteConnectionParams<'a> {
11-
/// The ID of the connection to delete.
12-
pub connection_id: &'a ConnectionId,
13-
}
14-
157
/// An error returned from [`DeleteConnection`].
168
#[derive(Debug, Error)]
179
pub enum DeleteConnectionError {}
@@ -41,29 +33,28 @@ pub trait DeleteConnection {
4133
///
4234
/// workos
4335
/// .sso()
44-
/// .delete_connection(&DeleteConnectionParams {
45-
/// connection_id: &ConnectionId::from("conn_01E2NPPCT7XQ2MVVYDHWGK1WN4"),
46-
/// })
36+
/// .delete_connection(&ConnectionId::from("conn_01E2NPPCT7XQ2MVVYDHWGK1WN4"))
4737
/// .await?;
4838
/// # Ok(())
4939
/// # }
5040
/// ```
5141
async fn delete_connection(
5242
&self,
53-
params: &DeleteConnectionParams<'_>,
43+
connection_id: &ConnectionId,
5444
) -> WorkOsResult<(), DeleteConnectionError>;
5545
}
5646

5747
#[async_trait]
5848
impl DeleteConnection for Sso<'_> {
5949
async fn delete_connection(
6050
&self,
61-
params: &DeleteConnectionParams<'_>,
51+
connection_id: &ConnectionId,
6252
) -> WorkOsResult<(), DeleteConnectionError> {
6353
let url = self
6454
.workos
6555
.base_url()
66-
.join(&format!("/connections/{id}", id = params.connection_id))?;
56+
.join(&format!("/connections/{connection_id}"))?;
57+
6758
self.workos
6859
.client()
6960
.delete(url)
@@ -105,9 +96,7 @@ mod test {
10596

10697
let result = workos
10798
.sso()
108-
.delete_connection(&DeleteConnectionParams {
109-
connection_id: &ConnectionId::from("conn_01E2NPPCT7XQ2MVVYDHWGK1WN4"),
110-
})
99+
.delete_connection(&ConnectionId::from("conn_01E2NPPCT7XQ2MVVYDHWGK1WN4"))
111100
.await;
112101

113102
assert_matches!(result, Ok(()));

src/user_management/operations/deactivate_organization_membership.rs

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,9 @@
11
use async_trait::async_trait;
2-
use serde::Serialize;
32
use thiserror::Error;
43

54
use crate::user_management::{OrganizationMembership, OrganizationMembershipId, UserManagement};
65
use crate::{ResponseExt, WorkOsError, WorkOsResult};
76

8-
/// The parameters for [`DeactivateOrganizationMembership`].
9-
#[derive(Debug, Serialize)]
10-
pub struct DeactivateOrganizationMembershipParams<'a> {
11-
/// The unique ID of the organization membership.
12-
pub organization_membership_id: &'a OrganizationMembershipId,
13-
}
14-
157
/// An error returned from [`DeactivateOrganizationMembership`].
168
#[derive(Debug, Error)]
179
pub enum DeactivateOrganizationMembershipError {}
@@ -43,35 +35,34 @@ pub trait DeactivateOrganizationMembership {
4335
///
4436
/// let organization_membership = workos
4537
/// .user_management()
46-
/// .deactivate_organization_membership(&DeactivateOrganizationMembershipParams {
47-
/// organization_membership_id: &OrganizationMembershipId::from("om_01E4ZCR3C56J083X43JQXF3JK5"),
48-
/// })
38+
/// .deactivate_organization_membership(&OrganizationMembershipId::from(
39+
/// "om_01E4ZCR3C56J083X43JQXF3JK5"
40+
/// ))
4941
/// .await?;
5042
/// # Ok(())
5143
/// # }
5244
/// ```
5345
async fn deactivate_organization_membership(
5446
&self,
55-
params: &DeactivateOrganizationMembershipParams<'_>,
47+
organization_membership_id: &OrganizationMembershipId,
5648
) -> WorkOsResult<OrganizationMembership, DeactivateOrganizationMembershipError>;
5749
}
5850

5951
#[async_trait]
6052
impl DeactivateOrganizationMembership for UserManagement<'_> {
6153
async fn deactivate_organization_membership(
6254
&self,
63-
params: &DeactivateOrganizationMembershipParams<'_>,
55+
organization_membership_id: &OrganizationMembershipId,
6456
) -> WorkOsResult<OrganizationMembership, DeactivateOrganizationMembershipError> {
6557
let url = self.workos.base_url().join(&format!(
66-
"/user_management/organization_memberships/{id}/deactivate",
67-
id = params.organization_membership_id
58+
"/user_management/organization_memberships/{organization_membership_id}/deactivate",
6859
))?;
60+
6961
let organization_membership = self
7062
.workos
7163
.client()
7264
.post(url)
7365
.bearer_auth(self.workos.key())
74-
.json(&params)
7566
.send()
7667
.await?
7768
.handle_unauthorized_or_generic_error()
@@ -129,11 +120,9 @@ mod test {
129120

130121
let organization_membership = workos
131122
.user_management()
132-
.deactivate_organization_membership(&DeactivateOrganizationMembershipParams {
133-
organization_membership_id: &OrganizationMembershipId::from(
134-
"om_01E4ZCR3C56J083X43JQXF3JK5",
135-
),
136-
})
123+
.deactivate_organization_membership(&OrganizationMembershipId::from(
124+
"om_01E4ZCR3C56J083X43JQXF3JK5",
125+
))
137126
.await
138127
.unwrap();
139128

0 commit comments

Comments
 (0)