4 files changed
+19
-11
crates/cli/src/deploy/config.rs
+2
@@ -103,6 +103,8 @@ impl Config {
103
104
#[derive(Error, Debug, PartialEq, Eq)]
105
pub enum ConfigError {
106
+ #[error("Missing token. Make sure you are logged in.")]
107
+ MissingToken,
108
#[error("Missing config file. Please regenerate with 'smb init'.")]
109
MissingConfig,
110
#[error("Missing id in repository. Please regenerate with 'smb init'.")]
crates/cli/src/deploy/setup.rs
+8
-3
@@ -5,8 +5,8 @@ use crate::{
5
use dialoguer::{theme::ColorfulTheme, Confirm, Input, Select};
6
use regex::Regex;
7
use smbcloud_model::project::{Project, ProjectCreate};
8
-use smbcloud_networking::environment::Environment;
9
-use smbcloud_networking_project::{create_project, get_all};
8
+use smbcloud_networking::{environment::Environment, get_smb_token};
9
+use smbcloud_networking_project::{create_project, get_projects};
10
use std::{env, fs, path::Path};
11
12
pub async fn setup_project(env: Environment) -> Result<Config, ConfigError> {
@@ -25,7 +25,12 @@ pub async fn setup_project(env: Environment) -> Result<Config, ConfigError> {
25
return Err(ConfigError::Cancel);
26
}
27
28
- let projects = match get_all(env).await {
28
+ let access_token = match get_smb_token(env).await {
29
+ Ok(token) => token,
30
+ Err(_) => { return Err(ConfigError::MissingToken) },
31
+ };
32
+
33
+ let projects = match get_projects(env, access_token).await {
34
Ok(x) => x,
35
Err(_) => return Err(ConfigError::InputError),
36
};
crates/cli/src/project/crud_read.rs
+3
-3
@@ -8,7 +8,7 @@ use anyhow::{anyhow, Result};
8
use log::debug;
9
use smbcloud_model::project::{Config, Project};
10
use smbcloud_networking::{environment::Environment, get_smb_token};
11
-use smbcloud_networking_project::{crud_project_read::get_project, get_all};
11
+use smbcloud_networking_project::{crud_project_read::get_project, get_projects};
12
use spinners::Spinner;
13
use tabled::{Table, Tabled};
14
@@ -45,8 +45,8 @@ pub async fn process_project_list(env: Environment) -> Result<CommandResult> {
45
spinners::Spinners::SimpleDotsScrolling,
46
succeed_message("Loading"),
47
);
48
-
49
- match get_all(env).await {
48
+ let token = get_smb_token(env).await?;
49
+ match get_projects(env, token).await {
50
Ok(projects) => {
51
spinner.stop_and_persist(&succeed_symbol(), succeed_message("Loaded."));
52
let msg = if projects.is_empty() {
crates/smbcloud-networking-project/src/lib.rs
+6
-5
@@ -10,15 +10,16 @@ use reqwest::{Client, StatusCode};
10
use smbcloud_model::project::{Project, ProjectCreate};
11
use smbcloud_networking::{constants::SMB_USER_AGENT, environment::Environment, get_smb_token, smb_base_url_builder};
12
13
-pub async fn get_all(env: Environment) -> Result<Vec<Project>> {
14
- // Get current token
15
- let token = get_smb_token(env).await?;
13
+pub async fn get_projects(
14
+ env: Environment,
15
+ access_token: String
16
+) -> Result<Vec<Project>> {
17
17
- debug!("Current token: {}", token);
18
+ debug!("Current token: {}", access_token);
19
20
let response = Client::new()
21
.get(build_project_url(env))
21
- .header("Authorization", token)
22
+ .header("Authorization", access_token)
23
.header("User-agent", SMB_USER_AGENT)
24
.send()
25
.await?;