Skip to content

Commit 2602091

Browse files
committed
Merge branch 'feature/reset-password-request' into development
2 parents 55d8da2 + 43ea76e commit 2602091

File tree

3 files changed

+48
-31
lines changed

3 files changed

+48
-31
lines changed

crates/cli/src/account/login/process.rs

Lines changed: 5 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use {
1212
console::style,
1313
dialoguer::{console::Term, theme::ColorfulTheme, Confirm, Input, Password, Select},
1414
log::debug,
15-
reqwest::{Client, StatusCode},
15+
reqwest::Client,
1616
smbcloud_model::{
1717
account::{
1818
ErrorCode::{
@@ -21,20 +21,18 @@ use {
2121
},
2222
GithubInfo, SmbAuthorization, User,
2323
},
24-
forgot::{Param, UserUpdatePassword},
2524
login::{AccountStatus, LoginArgs},
2625
signup::{GithubEmail, Provider, SignupGithubParams, SignupUserGithub},
2726
},
2827
smbcloud_network::environment::Environment,
2928
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,
3330
},
3431
smbcloud_networking_account::{
3532
check_email::check_email, login::login,
3633
resend_email_verification::resend_email_verification as account_resend_email_verification,
3734
resend_reset_password_instruction::resend_reset_password_instruction as account_resend_reset_password_instruction,
35+
reset_password::reset_password as account_reset_password,
3836
},
3937
smbcloud_utils::email_validation,
4038
spinners::Spinner,
@@ -511,26 +509,8 @@ async fn input_reset_password_token(env: Environment) -> Result<CommandResult> {
511509
style("Resetting password...").green().bold().to_string(),
512510
);
513511

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(&params)
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 {
534514
spinner,
535515
symbol: succeed_symbol(),
536516
msg: succeed_message("Password reset!"),
@@ -539,12 +519,6 @@ async fn input_reset_password_token(env: Environment) -> Result<CommandResult> {
539519
}
540520
}
541521

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-
548522
fn build_smb_connect_github_url(env: Environment) -> String {
549523
let mut url_builder = smb_base_url_builder(env, &SmbClient::Cli);
550524
url_builder.add_route(PATH_LINK_GITHUB_ACCOUNT);

crates/smbcloud-networking-account/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ pub mod oauth;
66
pub mod remove;
77
pub mod resend_email_verification;
88
pub mod resend_reset_password_instruction;
9+
pub mod reset_password;
910
pub mod signup;
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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(&params)
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+
}

0 commit comments

Comments
 (0)