@smbcloud / cli / commits / c9dd05e

it's called get_projects

Seto Elkahfi committed May 31, 2025 at 17:51 UTC c9dd05ef707039d6f772565f42abfba83d40c91a
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?;