use crate::{
sns::report::SnsProposalsCacheListReport,
table::{ColumnAlign, render_table},
};
pub fn sns_proposals_cache_list_report_text(report: &SnsProposalsCacheListReport) -> String {
let mut lines = vec![
format!("network: {}", report.network),
format!("cache_root: {}", report.cache_root),
format!("cache_count: {}", report.cache_count),
];
if !report.caches.is_empty() {
lines.push(String::new());
lines.push(render_table(
&["ID", "NAME", "ROOT", "ROWS", "PAGES", "FETCHED_AT"],
&report
.caches
.iter()
.map(|cache| {
[
cache.id.to_string(),
cache.name.clone(),
cache.root_canister_id.clone(),
cache.row_count.to_string(),
cache.page_count.to_string(),
cache.fetched_at.clone(),
]
})
.collect::<Vec<_>>(),
&[
ColumnAlign::Right,
ColumnAlign::Left,
ColumnAlign::Left,
ColumnAlign::Right,
ColumnAlign::Right,
ColumnAlign::Left,
],
));
}
lines.join("\n")
}