diff --git a/src/document.rs b/src/document.rs index 42ad5c3..049b3d9 100644 --- a/src/document.rs +++ b/src/document.rs @@ -42,7 +42,7 @@ impl DocumentMetadata { .lock() .map_err(|e| DocumentError::LockError(e.to_string()))?; - Ok(last_modified_guard.clone()) + Ok(*last_modified_guard) } fn update_last_modified(&mut self) -> Result<(), DocumentError> { @@ -122,9 +122,8 @@ impl DocumentTrait for Document { history_guard.push(content.to_owned()); *content_guard = content.to_owned(); - self.metadata.update_last_modified(); - Ok(()) + self.metadata.update_last_modified() } fn content(&self) -> Result, DocumentError> { diff --git a/src/main.rs b/src/main.rs index d5a65e7..b562e64 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ use crate::document::{Document, DocumentTrait}; use actix_web::{get, post, web, App, HttpServer, Responder}; use std::collections::HashMap; -use std::sync::Mutex; +use std::sync::{Mutex}; use uuid::Uuid; mod document; @@ -34,11 +34,12 @@ impl DocumentDb { #[get("/doc/{uuid}")] async fn get_doc(server: web::Data, uuid: web::Path) -> impl Responder { match server.find_doc(&uuid).await { - Ok(doc) => format!( - "Document content: {}", - doc.content() - .expect("Error while obtaining document content.") - ), + Ok(doc) => match doc.content() { + Ok(content) => { + format!("Document content: {}", content) + } + Err(e) => format!("Error: {}", e), + }, Err(e) => format!("Error: {}", e), } } @@ -58,7 +59,7 @@ async fn create_doc( let doc_id = doc.id(); match server.add_doc(doc).await { Ok(_) => format!("Document created with ID: {}", doc_id), - Err(e) => e.to_owned() + Err(e) => format!("Error: {}", e), } } @@ -76,7 +77,7 @@ async fn edit_doc( match server.find_doc(&uuid).await { Ok(mut doc) => match doc.set_content(body.content.as_ref()) { Ok(_) => "Content changed".to_owned(), - Err(_) => "Couldn't change content, try again later".to_owned(), + Err(e) => format!("Error: {}", e), }, Err(e) => format!("Error: {}", e), }