diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2021-05-23 08:45:57 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-05-23 08:45:57 +0200 |
commit | 857fb9e9c4a90fd7ec5eddef22f25da63048f31d (patch) | |
tree | ad6992090fcb01d9f90d265ab42efb187cb2cfb2 | |
parent | 4216fe15db7d2bfa43ceef6ac939157353a312c8 (diff) |
Impl post subcommand
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | src/main.rs | 21 |
1 files changed, 20 insertions, 1 deletions
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, _) => { |