@smbcloud / cli / commits / 43ea76e

move reset_password to networking account crate

Seto committed Jan 1, 2026 at 23:42 UTC 43ea76ef90042693381b779edf3d120b2df7734b
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(&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 {
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(&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 +}