fix: surface server error in get_status and trim table output

- Include error field in get_status() ApiResponse so server error
  messages are surfaced instead of generic 'No status data returned'
- Use trim_lines_end() on table output to match local mode formatting
This commit is contained in:
2026-03-14 19:32:39 -03:00
parent 1a942b4d23
commit 0bc8d9c909
2 changed files with 21 additions and 6 deletions

View File

@@ -227,11 +227,17 @@ impl KeepClient {
#[derive(serde::Deserialize)]
struct ApiResponse {
data: Option<crate::common::status::StatusInfo>,
error: Option<String>,
}
let response: ApiResponse = self.get_json("/api/status")?;
response
.data
.ok_or_else(|| CoreError::Other(anyhow::anyhow!("No status data returned")))
response.data.ok_or_else(|| {
CoreError::Other(anyhow::anyhow!(
"{}",
response
.error
.unwrap_or_else(|| "No status data returned".to_string())
))
})
}
pub fn get_item_info(&self, id: i64) -> Result<ItemInfo, CoreError> {

View File

@@ -33,7 +33,10 @@ pub fn mode(
path_table.add_row(vec!["Data", &status_info.paths.data]);
path_table.add_row(vec!["Database", &status_info.paths.database]);
println!("PATHS:");
println!("{path_table}");
println!(
"{}",
crate::modes::common::trim_lines_end(&path_table.trim_fmt())
);
println!();
// Configured meta plugins
@@ -56,7 +59,10 @@ pub fn mode(
]);
}
println!("META PLUGINS:");
println!("{table}");
println!(
"{}",
crate::modes::common::trim_lines_end(&table.trim_fmt())
);
println!();
}
@@ -78,7 +84,10 @@ pub fn mode(
]);
}
println!("COMPRESSION:");
println!("{table}");
println!(
"{}",
crate::modes::common::trim_lines_end(&table.trim_fmt())
);
println!();
}
}