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
+}