4 files changed
+39
-22
crates/cli/src/account/login/process.rs
+7
-20
@@ -28,13 +28,15 @@ use {
28
smbcloud_network::environment::Environment,
29
smbcloud_networking::{
30
constants::{
31
- PATH_LINK_GITHUB_ACCOUNT, PATH_RESEND_CONFIRMATION, PATH_RESET_PASSWORD_INSTRUCTIONS,
32
- PATH_USERS_PASSWORD,
31
+ PATH_LINK_GITHUB_ACCOUNT, PATH_RESET_PASSWORD_INSTRUCTIONS, PATH_USERS_PASSWORD,
32
},
33
smb_base_url_builder,
34
smb_client::SmbClient,
35
},
37
- smbcloud_networking_account::{check_email::check_email, login::login},
36
+ smbcloud_networking_account::{
37
+ check_email::check_email, login::login,
38
+ resend_email_verification::resend_email_verification as account_resend_email_verification,
39
+ },
40
smbcloud_utils::email_validation,
41
spinners::Spinner,
42
};
@@ -215,17 +217,8 @@ async fn resend_email_verification(env: Environment, user: User) -> Result<Comma
217
.bold()
218
.to_string(),
219
);
218
-
219
- let response = Client::new()
220
- .post(build_smb_resend_email_verification_url(env))
221
- .body(format!("id={}", user.id))
222
- .header("Accept", "application/json")
223
- .header("Content-Type", "application/x-www-form-urlencoded")
224
- .send()
225
- .await?;
226
-
227
- match response.status() {
228
- reqwest::StatusCode::OK => Ok(CommandResult {
220
+ match account_resend_email_verification(env, SmbClient::Cli, user.id).await {
221
+ Ok(_) => Ok(CommandResult {
222
spinner,
223
symbol: succeed_symbol(),
224
msg: succeed_message("Verification email sent!"),
@@ -554,12 +547,6 @@ async fn input_reset_password_token(env: Environment) -> Result<CommandResult> {
547
}
548
}
549
557
-fn build_smb_resend_email_verification_url(env: Environment) -> String {
558
- let mut url_builder = smb_base_url_builder(env, &SmbClient::Cli);
559
- url_builder.add_route(PATH_RESEND_CONFIRMATION);
560
- url_builder.build()
561
-}
562
-
550
fn build_smb_resend_reset_password_instructions_url(env: Environment) -> String {
551
let mut url_builder = smb_base_url_builder(env, &SmbClient::Cli);
552
url_builder.add_route(PATH_RESET_PASSWORD_INSTRUCTIONS);
crates/smbcloud-networking-account/src/lib.rs
+1
@@ -4,4 +4,5 @@ pub mod logout;
4
pub mod me;
5
pub mod oauth;
6
pub mod remove;
7
+pub mod resend_email_verification;
8
pub mod signup;
crates/smbcloud-networking-account/src/resend_email_verification.rs
new
+29
@@ -0,0 +1,29 @@
1
+use {
2
+ reqwest::Client,
3
+ smbcloud_model::{account::SmbAuthorization, error_codes::ErrorResponse},
4
+ smbcloud_network::{environment::Environment, network::request},
5
+ smbcloud_networking::{
6
+ constants::PATH_RESEND_CONFIRMATION, smb_base_url_builder, smb_client::SmbClient,
7
+ },
8
+};
9
+
10
+pub async fn resend_email_verification(
11
+ env: Environment,
12
+ client: SmbClient,
13
+ user_id: i32,
14
+) -> Result<SmbAuthorization, ErrorResponse> {
15
+ let builder = Client::new()
16
+ .post(build_smb_resend_email_verification_url(env, &client))
17
+ .body(format!("id={}", user_id))
18
+ .header("User-agent", client.id())
19
+ .header("Accept", "application/json")
20
+ .header("Content-Type", "application/x-www-form-urlencoded");
21
+
22
+ request(builder).await
23
+}
24
+
25
+fn build_smb_resend_email_verification_url(env: Environment, client: &SmbClient) -> String {
26
+ let mut url_builder = smb_base_url_builder(env, client);
27
+ url_builder.add_route(PATH_RESEND_CONFIRMATION);
28
+ url_builder.build()
29
+}
docs/debugging.md
+2
-2
@@ -11,13 +11,13 @@ $ cargo debugger --package smbcloud-cli -- account signup
11
Default environment is production. To run against dev environemt:
12
13
```bash
14
-$ cargo run -- -e dev account login
14
+$ cargo run -p smbcloud-cli -- -e dev account login
15
```
16
17
Example debug the dev environment:
18
19
```bash
20
-$ cargo debugger --package cli -- -e dev account login
20
+$ cargo debugger --package smbcloud-cli -- -e dev account login
21
```
22
23
## Run from different directory