Add poll command to k2v-cli #335

Merged
lx merged 2 commits from k2v-watch into main 2022-07-04 10:45:32 +00:00

View file

@ -55,6 +55,19 @@ enum Command {
#[clap(flatten)] #[clap(flatten)]
output_kind: ReadOutputKind, output_kind: ReadOutputKind,
}, },
/// Watch changes on a single value
Poll {
/// Partition key to delete from
partition_key: String,
/// Sort key to delete from
sort_key: String,
/// Causality information
#[clap(short, long)]
causality: String,
/// Output formating
#[clap(flatten)]
output_kind: ReadOutputKind,
},
/// Delete a single value /// Delete a single value
Delete { Delete {
/// Partition key to delete from /// Partition key to delete from
@ -324,6 +337,21 @@ async fn main() -> Result<(), Error> {
let res = client.read_item(&partition_key, &sort_key).await?; let res = client.read_item(&partition_key, &sort_key).await?;
output_kind.display_output(res); output_kind.display_output(res);
} }
Command::Poll {
partition_key,
sort_key,
causality,
output_kind,
} => {
let res_opt = client
.poll_item(&partition_key, &sort_key, causality.into(), None)
.await?;
if let Some(res) = res_opt {
output_kind.display_output(res);
} else {
println!("Delay expired and value didn't change.");
}
}
Command::ReadIndex { Command::ReadIndex {
output_kind, output_kind,
filter, filter,