@smbcloud / cli / commits / 7b7601e

use request

Seto Elkahfi committed May 31, 2025 at 20:18 UTC 7b7601eb0b13602d76c6c33b4fb01d7c0a29e44a
9 files changed +58 -71
crates/cli/src/deploy/mod.rs
+1 -1
@@ -72,7 +72,7 @@ pub async fn process_deploy(env: Environment) -> Result<CommandResult> {
72 status: DeploymentStatus::Started,
73 };
74
75 - let created_deployment = create(env, config.project.id.clone(), payload).await?;
75 + let created_deployment = create(env, &access_token, config.project.id.clone(), payload).await?;
76 let user = me(env).await?;
77
78 let mut push_opts = PushOptions::new();
crates/smbcloud-networking-project/src/crud_project_create.rs
+1 -1
@@ -6,7 +6,7 @@ use smbcloud_model::{
6 };
7 use smbcloud_networking::{constants::SMB_USER_AGENT, environment::Environment, network::request};
8
9 -use crate::build_project_url;
9 +use crate::url_builder::build_project_url;
10
11 pub async fn create_project(
12 env: Environment,
crates/smbcloud-networking-project/src/crud_project_delete.rs
+1 -1
@@ -1,4 +1,4 @@
1 -use crate::build_project_url_with_id;
1 +use crate::url_builder::build_project_url_with_id;
2 use reqwest::Client;
3 use smbcloud_model::error_codes::ErrorResponse;
4 use smbcloud_networking::{constants::SMB_USER_AGENT, environment::Environment, network::request};
crates/smbcloud-networking-project/src/crud_project_deployment_create.rs
+14 -29
@@ -1,37 +1,22 @@
1 -use crate::build_project_deployment_index;
2 -use anyhow::{anyhow, Result};
3 -use log::debug;
1 +use crate::url_builder::build_project_deployment_index;
2 +use anyhow::Result;
3 use reqwest::Client;
5 -use smbcloud_model::project::{Deployment, DeploymentPayload};
6 -use smbcloud_networking::{constants::SMB_USER_AGENT, environment::Environment, get_smb_token};
4 +use smbcloud_model::{
5 + error_codes::ErrorResponse,
6 + project::{Deployment, DeploymentPayload},
7 +};
8 +use smbcloud_networking::{constants::SMB_USER_AGENT, environment::Environment, network::request};
9
10 pub async fn create(
11 env: Environment,
12 + access_token: &str,
13 project_id: i32,
14 payload: DeploymentPayload,
12 -) -> Result<Deployment> {
13 - // Get current token
14 - let token = get_smb_token(env).await?;
15 -
16 - debug!("Current token: {}", token);
17 -
18 - let response = Client::new()
15 +) -> Result<Deployment, ErrorResponse> {
16 + let builder = Client::new()
17 .post(build_project_deployment_index(env, project_id.to_string()))
18 .json(&payload)
21 - .header("Authorization", token)
22 - .header("User-agent", SMB_USER_AGENT)
23 - .send()
24 - .await?;
25 -
26 - match response.status() {
27 - reqwest::StatusCode::CREATED => {
28 - let deployment: Deployment = response.json().await?;
29 - Ok(deployment)
30 - // After receiving the response
31 - //let body = response.text().await?;
32 - //println!("Response body: {}", body);
33 - // todo!()
34 - }
35 - _ => Err(anyhow!("Something wrong.")),
36 - }
37 -}
\ No newline at end of file
19 + .header("Authorization", access_token)
20 + .header("User-agent", SMB_USER_AGENT);
21 + request(builder).await
22 +}
crates/smbcloud-networking-project/src/crud_project_deployment_read.rs
+1 -1
@@ -1,4 +1,4 @@
1 -use crate::{build_project_deployment, build_project_deployment_index};
1 +use crate::url_builder::{build_project_deployment, build_project_deployment_index};
2 use anyhow::Result;
3 use reqwest::Client;
4 use smbcloud_model::{error_codes::ErrorResponse, project::Deployment};
crates/smbcloud-networking-project/src/crud_project_deployment_update.rs
+4 -3
@@ -4,9 +4,9 @@ use smbcloud_model::{
4 error_codes::ErrorResponse,
5 project::{Deployment, DeploymentPayload},
6 };
7 -use smbcloud_networking::{environment::Environment, network::request};
7 +use smbcloud_networking::{constants::SMB_USER_AGENT, environment::Environment, network::request};
8
9 -use crate::build_project_deployment;
9 +use crate::url_builder::build_project_deployment;
10
11 pub async fn update(
12 env: Environment,
@@ -19,6 +19,7 @@ pub async fn update(
19 let builder = Client::new()
20 .put(url)
21 .json(&status)
22 - .header("Authorization", access_token);
22 + .header("Authorization", access_token)
23 + .header("User-agent", SMB_USER_AGENT);
24 request(builder).await
25 }
crates/smbcloud-networking-project/src/crud_project_read.rs
+1 -1
@@ -1,4 +1,4 @@
1 -use crate::{build_project_url, build_project_url_with_id};
1 +use crate::url_builder::{build_project_url, build_project_url_with_id};
2 use reqwest::Client;
3 use smbcloud_model::{error_codes::ErrorResponse, project::Project};
4 use smbcloud_networking::{constants::SMB_USER_AGENT, environment::Environment, network::request};
crates/smbcloud-networking-project/src/lib.rs
+1 -34
@@ -4,37 +4,4 @@ pub mod crud_project_deployment_create;
4 pub mod crud_project_deployment_read;
5 pub mod crud_project_deployment_update;
6 pub mod crud_project_read;
7 -
8 -use smbcloud_networking::{environment::Environment, smb_base_url_builder};
9 -
10 -// Private functions
11 -
12 -fn build_project_url(env: Environment) -> String {
13 - let mut url_builder = smb_base_url_builder(env);
14 - url_builder.add_route("v1/projects");
15 - url_builder.build()
16 -}
17 -
18 -fn build_project_url_with_id(env: Environment, id: String) -> String {
19 - let mut url_builder = smb_base_url_builder(env);
20 - url_builder.add_route("v1/projects");
21 - url_builder.add_route(id.as_str());
22 - url_builder.build()
23 -}
24 -
25 -fn build_project_deployment_index(env: Environment, project_id: String) -> String {
26 - let mut url_builder = smb_base_url_builder(env);
27 - url_builder.add_route("v1/projects");
28 - url_builder.add_route(project_id.as_str());
29 - url_builder.add_route("deployment");
30 - url_builder.build()
31 -}
32 -
33 -fn build_project_deployment(env: Environment, project_id: String, id: String) -> String {
34 - let mut url_builder = smb_base_url_builder(env);
35 - url_builder.add_route("v1/projects");
36 - url_builder.add_route(project_id.as_str());
37 - url_builder.add_route("deployment");
38 - url_builder.add_route(id.as_str());
39 - url_builder.build()
40 -}
7 +mod url_builder;
\ No newline at end of file
crates/smbcloud-networking-project/src/url_builder.rs new
+34
@@ -0,0 +1,34 @@
1 +
2 +use smbcloud_networking::{environment::Environment, smb_base_url_builder};
3 +
4 +// Private functions
5 +
6 +pub(crate) fn build_project_url(env: Environment) -> String {
7 + let mut url_builder = smb_base_url_builder(env);
8 + url_builder.add_route("v1/projects");
9 + url_builder.build()
10 +}
11 +
12 +pub(crate) fn build_project_url_with_id(env: Environment, id: String) -> String {
13 + let mut url_builder = smb_base_url_builder(env);
14 + url_builder.add_route("v1/projects");
15 + url_builder.add_route(id.as_str());
16 + url_builder.build()
17 +}
18 +
19 +pub(crate) fn build_project_deployment_index(env: Environment, project_id: String) -> String {
20 + let mut url_builder = smb_base_url_builder(env);
21 + url_builder.add_route("v1/projects");
22 + url_builder.add_route(project_id.as_str());
23 + url_builder.add_route("deployment");
24 + url_builder.build()
25 +}
26 +
27 +pub(crate) fn build_project_deployment(env: Environment, project_id: String, id: String) -> String {
28 + let mut url_builder = smb_base_url_builder(env);
29 + url_builder.add_route("v1/projects");
30 + url_builder.add_route(project_id.as_str());
31 + url_builder.add_route("deployment");
32 + url_builder.add_route(id.as_str());
33 + url_builder.build()
34 +}