@smbcloud / cli / commits / 94cac60

Add login module and URL builder to networking-account crate

Seto Elkahfi committed Jul 26, 2025 at 18:53 UTC 94cac6053f0a25cf2a3b54294a2df6a1b5d230c7
5 files changed +36 -1
Cargo.lock
+3
@@ -1947,6 +1947,9 @@ name = "smbcloud-networking-account"
1947 version = "0.1.0"
1948 dependencies = [
1949 "network",
1950 + "reqwest",
1951 + "smbcloud-model",
1952 + "smbcloud-networking",
1953 ]
1954
1955 [[package]]
crates/smbcloud-networking-account/Cargo.toml
+3
@@ -8,3 +8,6 @@ crate-type = ["cdylib", "rlib"]
8
9 [dependencies]
10 network = { workspace = true }
11 +smbcloud-networking = { workspace = true }
12 +smbcloud-model = { workspace = true }
13 +reqwest = { workspace = true, features = ["json"] }
crates/smbcloud-networking-account/src/lib.rs
+2 -1
@@ -1 +1,2 @@
1 -
1 +pub mod login;
2 +pub(crate) mod url_builder;
crates/smbcloud-networking-account/src/login.rs new
+20
@@ -0,0 +1,20 @@
1 +use crate::url_builder::build_smb_login_url;
2 +use network::environment::Environment;
3 +use network::network::request;
4 +use reqwest::Client;
5 +use smbcloud_model::{
6 + error_codes::ErrorResponse,
7 + login::{LoginParams, LoginResult},
8 +};
9 +use smbcloud_networking::constants::SMB_USER_AGENT;
10 +
11 +pub async fn login(
12 + env: Environment,
13 + login_params: LoginParams,
14 +) -> Result<LoginResult, ErrorResponse> {
15 + let builder = Client::new()
16 + .post(build_smb_login_url(env))
17 + .json(&login_params)
18 + .header("User-agent", SMB_USER_AGENT);
19 + request(builder).await
20 +}
crates/smbcloud-networking-account/src/url_builder.rs new
+8
@@ -0,0 +1,8 @@
1 +use network::environment::Environment;
2 +use smbcloud_networking::{constants::PATH_USERS_SIGN_IN, smb_base_url_builder};
3 +
4 +pub(crate) fn build_smb_login_url(env: Environment) -> String {
5 + let mut url_builder = smb_base_url_builder(env);
6 + url_builder.add_route(PATH_USERS_SIGN_IN);
7 + url_builder.build()
8 +}