Site inventory mode

This commit is contained in:
Maxime Augier 2024-08-21 16:07:09 +02:00
parent f0621c8bc8
commit 67a27284b3

View File

@ -30,6 +30,7 @@ enum Session {
#[derive(Debug, Clone, Subcommand)] #[derive(Debug, Clone, Subcommand)]
enum Mode { enum Mode {
Login, Login,
List,
Status, Status,
Session { Session {
#[arg(default_value = "ongoing")] #[arg(default_value = "ongoing")]
@ -161,6 +162,17 @@ fn main() -> Result<()> {
match args.mode { match args.mode {
Mode::Login => login()?, Mode::Login => login()?,
Mode::List => {
for site in ctx.sites_details()? {
println!("Site {} (level {})", site.site.id, site.site.level_of_access);
for circuit in site.circuits {
println!(" Circuit {} ({}A)", circuit.id, circuit.rated_current);
for charger in circuit.chargers {
println!("Charger {} (level {}", charger.id, charger.level_of_access);
}
}
}
},
Mode::Status => loop_chargers(&mut ctx, &args.charger_id, |c, ctx| { Mode::Status => loop_chargers(&mut ctx, &args.charger_id, |c, ctx| {
c.state(ctx).map(|s| status(&c.id, s)) c.state(ctx).map(|s| status(&c.id, s))
})?, })?,