1 use {
2 crate::client_credentials::{base_url_builder as tenant_base_url_builder, ClientCredentials},
3 reqwest::Client,
4 smbcloud_model::error_codes::ErrorResponse,
5 smbcloud_network::{environment::Environment, network::request},
6 smbcloud_networking::{constants::PATH_USERS, smb_base_url_builder, smb_client::SmbClient},
7 };
8
9 pub async fn remove(
10 env: Environment,
11 client: (&SmbClient, &str),
12 access_token: &str,
13 ) -> Result<(), ErrorResponse> {
14 let builder = Client::new()
15 .delete(build_smb_signup_url(env, client))
16 .header("Authorization", access_token)
17 .header("User-agent", client.0.id());
18 request(builder).await
19 }
20
21 pub async fn remove_with_client(
22 env: Environment,
23 client: ClientCredentials<'_>,
24 access_token: &str,
25 ) -> Result<(), ErrorResponse> {
26 let builder = Client::new()
27 .delete(build_remove_url_with_client(env, client))
28 .header("Authorization", access_token)
29 .header("User-agent", client.app_id);
30 request(builder).await
31 }
32
33 fn build_smb_signup_url(env: Environment, client: (&SmbClient, &str)) -> String {
34 let mut url_builder = smb_base_url_builder(env, client);
35 url_builder.add_route(PATH_USERS);
36 url_builder.build()
37 }
38
39 fn build_remove_url_with_client(env: Environment, client: ClientCredentials<'_>) -> String {
40 let mut url_builder = tenant_base_url_builder(env, client);
41 url_builder.add_route("v1/client/me");
42 url_builder.build()
43 }