]> git.r.bdr.sh - rbdr/blog/blobdiff - src/command/update.rs
Improve the error handling
[rbdr/blog] / src / command / update.rs
index 3796df2b67a082024a3029bba57f5b9311f5d1b6..8a3d6de47e27e41d53d66b6b13344fc6ee2e5832 100644 (file)
@@ -5,6 +5,7 @@ use super::{sync_down::SyncDown, generate::Generate, sync_up::SyncUp};
 use crate::configuration::Configuration;
 use crate::constants::METADATA_FILENAME;
 use crate::metadata::Metadata;
+use serde_json;
 
 pub struct Update;
 
@@ -23,7 +24,7 @@ impl Update {
     }
 
     fn write_metadata(&self, metadata: &Metadata, metadata_location: &PathBuf) -> Result<()> {
-        let serialized_metadata = metadata.serialize();
+        let serialized_metadata = serde_json::to_string(&metadata)?;
         write(metadata_location, serialized_metadata)?;
         Ok(())
     }
@@ -54,7 +55,8 @@ impl super::Command for Update {
     }
 
     fn execute(&self, input: Option<&String>, configuration: &Configuration, _: &String) -> Result<()> {
-        let input = input.expect("You must provide a path to a post");
+        let input = input
+            .ok_or_else(|| Error::new(ErrorKind::InvalidInput, "You must provide a path to a post"))?;
         let post_location = PathBuf::from(input);
         if !post_location.exists() {
             return Err(Error::new(ErrorKind::NotFound, "The path provided does not exist"));