6 files changed
+29
-29
crates/cli/src/deploy/setup.rs
+6
@@ -131,8 +131,14 @@ async fn create_new_project(env: Environment, path: &str) -> Result<Project, Con
131
}
132
};
133
134
+ let access_token = match get_smb_token(env).await {
135
+ Ok(token) => token,
136
+ Err(_) => return Err(ConfigError::MissingToken),
137
+ };
138
+
139
match create_project(
140
env,
141
+ access_token,
142
ProjectCreate {
143
name,
144
repository,
crates/cli/src/project/crud_create.rs
+3
-1
@@ -7,7 +7,7 @@ use anyhow::{anyhow, Result};
7
use console::style;
8
use dialoguer::{theme::ColorfulTheme, Input};
9
use smbcloud_model::project::ProjectCreate;
10
-use smbcloud_networking::environment::Environment;
10
+use smbcloud_networking::{environment::Environment, get_smb_token};
11
use smbcloud_networking_project::create_project;
12
use spinners::Spinner;
13
@@ -51,8 +51,10 @@ pub async fn process_project_init(env: Environment) -> Result<CommandResult> {
51
style("Creating a project...").green().bold().to_string(),
52
);
53
54
+ let access_token = get_smb_token(env).await?;
55
match create_project(
56
env,
57
+ access_token,
58
ProjectCreate {
59
name: project_name.clone(),
60
repository,
crates/cli/src/project/crud_delete.rs
+3
-1
@@ -1,5 +1,7 @@
1
use crate::{
2
- account::lib::is_logged_in, cli::CommandResult, ui::{fail_message, fail_symbol, succeed_message, succeed_symbol}
2
+ account::lib::is_logged_in,
3
+ cli::CommandResult,
4
+ ui::{fail_message, fail_symbol, succeed_message, succeed_symbol},
5
};
6
use anyhow::{anyhow, Result};
7
use dialoguer::{theme::ColorfulTheme, Input};
crates/smbcloud-model/src/error_codes.rs
+2
-2
@@ -1,7 +1,7 @@
1
use core::fmt;
2
-use std::fmt::{Display, Formatter};
2
use serde::{Deserialize, Serialize};
3
use serde_repr::{Deserialize_repr, Serialize_repr};
4
+use std::fmt::{Display, Formatter};
5
use strum_macros::EnumIter;
6
use thiserror::Error;
7
@@ -61,7 +61,7 @@ impl ErrorCode {
61
ErrorCode::ProjectNotFound => "Project not found.",
62
ErrorCode::ParseError => "Parse error.",
63
ErrorCode::NetworkError => "Network error.",
64
- ErrorCode::Unauthorized => "Unauthorized access."
64
+ ErrorCode::Unauthorized => "Unauthorized access.",
65
}
66
}
67
crates/smbcloud-networking-project/src/crud_project_delete.rs
+1
-1
@@ -1,7 +1,7 @@
1
+use crate::build_project_url_with_id;
2
use reqwest::Client;
3
use smbcloud_model::error_codes::ErrorResponse;
4
use smbcloud_networking::{environment::Environment, network::request};
4
-use crate::build_project_url_with_id;
5
6
pub async fn delete_project(
7
env: Environment,
crates/smbcloud-networking-project/src/lib.rs
+14
-24
@@ -4,34 +4,24 @@ pub mod crud_project_deployment_read;
4
pub mod crud_project_deployment_update;
5
pub mod crud_project_read;
6
7
-use anyhow::{anyhow, Result};
7
+use anyhow::Result;
8
use reqwest::Client;
9
-use smbcloud_model::
10
- project::{Project, ProjectCreate}
11
-;
12
-use smbcloud_networking::{
13
- environment::Environment, get_smb_token, smb_base_url_builder,
9
+use smbcloud_model::{
10
+ error_codes::ErrorResponse,
11
+ project::{Project, ProjectCreate},
12
};
15
-
16
-pub async fn create_project(env: Environment, project: ProjectCreate) -> Result<Project> {
17
- // Get current token
18
- let token = get_smb_token(env).await?;
19
-
20
- let response = Client::new()
13
+use smbcloud_networking::{environment::Environment, network::request, smb_base_url_builder};
14
+
15
+pub async fn create_project(
16
+ env: Environment,
17
+ access_token: String,
18
+ project: ProjectCreate,
19
+) -> Result<Project, ErrorResponse> {
20
+ let builder = Client::new()
21
.post(build_project_url(env))
22
.json(&project)
23
- .header("Authorization", token)
24
- .send()
25
- .await?;
26
-
27
- match response.status() {
28
- reqwest::StatusCode::CREATED => {
29
- let project: Project = response.json().await?;
30
- // println!("Project created: {project:#?}");
31
- Ok(project)
32
- }
33
- _ => Err(anyhow!("Failed to create a project.")),
34
- }
23
+ .header("Authorization", access_token);
24
+ request(builder).await
25
}
26
27
// Private functions