From 857fb9e9c4a90fd7ec5eddef22f25da63048f31d Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sun, 23 May 2021 08:45:57 +0200 Subject: Impl post subcommand Signed-off-by: Matthias Beyer --- src/main.rs | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 145a3d9..fd14adc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ use std::path::PathBuf; +use std::str::FromStr; use anyhow::Result; use daglib::DagBackend; @@ -79,7 +80,25 @@ async fn main() -> Result<()> { }, ("post", Some(mtch)) => { - unimplemented!() + let payload = mtch + .value_of("content") + .map(String::from) + .map(crate::backend::Payload::now_from_text) + .unwrap(); // Safe by clap + let parent = mtch + .value_of("head") + .map(cid::Cid::from_str) + .transpose()? + .map(crate::backend::Id::from) + .unwrap(); // Safe by clap + + let payload_cid = backend.write_payload(&payload).await?; + let node = crate::backend::Node::new(crate::consts::v1(), vec![parent], payload_cid); + + let id = backend.put(node).await?; + + println!("id = {:?}", id); + Ok(()) }, (other, _) => { -- cgit v1.2.3