@smbcloud / cli / commits / d517d26

project list is truncated

Seto Elkahfi committed May 31, 2025 at 17:24 UTC d517d2688148aa250443668265ee4a85291b1de4
3 files changed +31 -8
crates/cli/src/project/crud_read.rs
+26 -3
@@ -22,6 +22,18 @@ struct ProjectRow {
22 repository: String,
23 #[tabled(rename = "Description")]
24 description: String,
25 +}
26 +
27 +#[derive(Tabled)]
28 +struct ProjectDetailRow {
29 + #[tabled(rename = "ID")]
30 + id: i32,
31 + #[tabled(rename = "Name")]
32 + name: String,
33 + #[tabled(rename = "Repository")]
34 + repository: String,
35 + #[tabled(rename = "Description")]
36 + description: String,
37 #[tabled(rename = "Created at")]
38 created_at: String,
39 #[tabled(rename = "Updated at")]
@@ -73,7 +85,7 @@ pub async fn process_project_show(env: Environment, id: String) -> Result<Comman
85 Ok(project) => {
86 spinner.stop_and_persist(&succeed_symbol(), succeed_message("Loaded."));
87 let message = succeed_message(&format!("Showing project {}.", &project.name));
76 - show_projects(vec![project]);
88 + show_project_detail(&project);
89 Ok(CommandResult {
90 spinner: Spinner::new(
91 spinners::Spinners::SimpleDotsScrolling,
@@ -101,14 +113,25 @@ pub(crate) fn show_projects(projects: Vec<Project>) {
113 name: p.name,
114 repository: p.repository,
115 description: p.description.unwrap_or("-".to_owned()),
104 - created_at: p.created_at.date_naive().to_string(),
105 - updated_at: p.updated_at.date_naive().to_string(),
116 })
117 .collect();
118 let table = Table::new(rows);
119 println!("{table}");
120 }
121
122 +pub(crate) fn show_project_detail(project: &Project) {
123 + let row = ProjectDetailRow {
124 + id: project.id,
125 + name: project.name.clone(),
126 + repository: project.repository.clone(),
127 + description: project.description.clone().unwrap_or("-".to_owned()),
128 + created_at: project.created_at.date_naive().to_string(),
129 + updated_at: project.updated_at.date_naive().to_string(),
130 + };
131 + let table = Table::new(vec![row]);
132 + println!("{table}");
133 +}
134 +
135 pub(crate) async fn process_project_use(env: Environment, id: String) -> Result<CommandResult> {
136 let access_token = get_smb_token(env).await?;
137 let project = get_project(env, access_token, id).await?;
crates/smbcloud-networking-project/src/crud_project_deployment_create.rs
+3 -3
@@ -3,7 +3,7 @@ use anyhow::{anyhow, Result};
3 use log::debug;
4 use reqwest::Client;
5 use smbcloud_model::project::{Deployment, DeploymentPayload};
6 -use smbcloud_networking::{environment::Environment, get_smb_token};
6 +use smbcloud_networking::{constants::SMB_USER_AGENT, environment::Environment, get_smb_token};
7
8 pub async fn create(
9 env: Environment,
@@ -19,7 +19,7 @@ pub async fn create(
19 .post(build_project_deployment_index(env, project_id.to_string()))
20 .json(&payload)
21 .header("Authorization", token)
22 - .header("User-agent", "smbcloud-cli")
22 + .header("User-agent", SMB_USER_AGENT)
23 .send()
24 .await?;
25
@@ -57,7 +57,7 @@ pub async fn update(
57 .put(url)
58 .json(&payload)
59 .header("Authorization", token)
60 - .header("User-agent", "smbcloud-cli")
60 + .header("User-agent", SMB_USER_AGENT)
61 .send()
62 .await?;
63
crates/smbcloud-networking-project/src/lib.rs
+2 -2
@@ -5,7 +5,7 @@ use anyhow::{anyhow, Result};
5 use log::debug;
6 use reqwest::{Client, StatusCode};
7 use smbcloud_model::project::{Project, ProjectCreate};
8 -use smbcloud_networking::{environment::Environment, get_smb_token, smb_base_url_builder};
8 +use smbcloud_networking::{constants::SMB_USER_AGENT, environment::Environment, get_smb_token, smb_base_url_builder};
9
10 pub async fn get_all(env: Environment) -> Result<Vec<Project>> {
11 // Get current token
@@ -16,7 +16,7 @@ pub async fn get_all(env: Environment) -> Result<Vec<Project>> {
16 let response = Client::new()
17 .get(build_project_url(env))
18 .header("Authorization", token)
19 - .header("User-agent", "smbcloud-cli")
19 + .header("User-agent", SMB_USER_AGENT)
20 .send()
21 .await?;
22