3 files changed
+48
-31
crates/cli/src/account/login/process.rs
+5
-31
@@ -12,7 +12,7 @@ use {
12
console::style,
13
dialoguer::{console::Term, theme::ColorfulTheme, Confirm, Input, Password, Select},
14
log::debug,
15
- reqwest::{Client, StatusCode},
15
+ reqwest::Client,
16
smbcloud_model::{
17
account::{
18
ErrorCode::{
@@ -21,20 +21,18 @@ use {
21
},
22
GithubInfo, SmbAuthorization, User,
23
},
24
- forgot::{Param, UserUpdatePassword},
24
login::{AccountStatus, LoginArgs},
25
signup::{GithubEmail, Provider, SignupGithubParams, SignupUserGithub},
26
},
27
smbcloud_network::environment::Environment,
28
smbcloud_networking::{
30
- constants::{PATH_LINK_GITHUB_ACCOUNT, PATH_USERS_PASSWORD},
31
- smb_base_url_builder,
32
- smb_client::SmbClient,
29
+ constants::PATH_LINK_GITHUB_ACCOUNT, smb_base_url_builder, smb_client::SmbClient,
30
},
31
smbcloud_networking_account::{
32
check_email::check_email, login::login,
33
resend_email_verification::resend_email_verification as account_resend_email_verification,
34
resend_reset_password_instruction::resend_reset_password_instruction as account_resend_reset_password_instruction,
35
+ reset_password::reset_password as account_reset_password,
36
},
37
smbcloud_utils::email_validation,
38
spinners::Spinner,
@@ -511,26 +509,8 @@ async fn input_reset_password_token(env: Environment) -> Result<CommandResult> {
509
style("Resetting password...").green().bold().to_string(),
510
);
511
514
- let password_confirmation = password.clone();
515
-
516
- let params = Param {
517
- user: UserUpdatePassword {
518
- reset_password_token: token,
519
- password,
520
- password_confirmation,
521
- },
522
- };
523
-
524
- let response = Client::new()
525
- .put(build_smb_reset_password_url(env))
526
- .json(¶ms)
527
- .header("Accept", "application/json")
528
- .header("Content-Type", "application/x-www-form-urlencoded")
529
- .send()
530
- .await?;
531
-
532
- match response.status() {
533
- StatusCode::OK => Ok(CommandResult {
512
+ match account_reset_password(env, SmbClient::Cli, token, password).await {
513
+ Ok(_) => Ok(CommandResult {
514
spinner,
515
symbol: succeed_symbol(),
516
msg: succeed_message("Password reset!"),
@@ -539,12 +519,6 @@ async fn input_reset_password_token(env: Environment) -> Result<CommandResult> {
519
}
520
}
521
542
-fn build_smb_reset_password_url(env: Environment) -> String {
543
- let mut url_builder = smb_base_url_builder(env, &SmbClient::Cli);
544
- url_builder.add_route(PATH_USERS_PASSWORD);
545
- url_builder.build()
546
-}
547
-
522
fn build_smb_connect_github_url(env: Environment) -> String {
523
let mut url_builder = smb_base_url_builder(env, &SmbClient::Cli);
524
url_builder.add_route(PATH_LINK_GITHUB_ACCOUNT);
crates/smbcloud-networking-account/src/lib.rs
+1
@@ -6,4 +6,5 @@ pub mod oauth;
6
pub mod remove;
7
pub mod resend_email_verification;
8
pub mod resend_reset_password_instruction;
9
+pub mod reset_password;
10
pub mod signup;
crates/smbcloud-networking-account/src/reset_password.rs
new
+42
@@ -0,0 +1,42 @@
1
+use {
2
+ reqwest::Client,
3
+ smbcloud_model::{
4
+ error_codes::ErrorResponse,
5
+ forgot::{Param, UserUpdatePassword},
6
+ },
7
+ smbcloud_network::{environment::Environment, network::request},
8
+ smbcloud_networking::{
9
+ constants::PATH_USERS_PASSWORD, smb_base_url_builder, smb_client::SmbClient,
10
+ },
11
+};
12
+
13
+pub async fn reset_password(
14
+ env: Environment,
15
+ client: SmbClient,
16
+ token: String,
17
+ password: String,
18
+) -> Result<(), ErrorResponse> {
19
+ let password_confirmation = password.clone();
20
+ let params = Param {
21
+ user: UserUpdatePassword {
22
+ reset_password_token: token,
23
+ password,
24
+ password_confirmation,
25
+ },
26
+ };
27
+
28
+ let builder = Client::new()
29
+ .put(build_smb_reset_password_url(env))
30
+ .json(¶ms)
31
+ .header("User-agent", client.id())
32
+ .header("Accept", "application/json")
33
+ .header("Content-Type", "application/x-www-form-urlencoded");
34
+
35
+ request(builder).await
36
+}
37
+
38
+fn build_smb_reset_password_url(env: Environment) -> String {
39
+ let mut url_builder = smb_base_url_builder(env, &SmbClient::Cli);
40
+ url_builder.add_route(PATH_USERS_PASSWORD);
41
+ url_builder.build()
42
+}