diff --git a/src/search_result.rs b/src/search_result.rs new file mode 100644 index 0000000..bd35e19 --- /dev/null +++ b/src/search_result.rs @@ -0,0 +1,30 @@ +use serde::Serialize; + +use crate::elastic_response::File; + +#[derive(Debug, Serialize)] +pub struct SearchResult { + pub name: String, + pub modified: String, + pub size: usize, +} + +impl SearchResult { + pub fn to_html(&self) -> String { + format!( + "
  • {name}({size} Bytes)
  • {modified}", + name = self.name, + size = self.size, + modified = self.modified + ) + } +} +impl From<&File> for SearchResult { + fn from(file: &File) -> Self { + Self { + name: file.filename.clone(), + modified: file.last_modified.clone(), + size: file.filesize, + } + } +} diff --git a/src/server.rs b/src/server.rs index 7068b0b..05b2919 100644 --- a/src/server.rs +++ b/src/server.rs @@ -68,7 +68,11 @@ fn search_to_html(results: Vec) -> String { .map(|res| res.to_html()) .collect::>() .join("\n"); - let body = format!("", res_html); + let body = format!( + "
    Yay, found the following {} lists!
      {}
    ", + results.len(), + res_html + ); HTML_TEMPLATE.replace("{body}", &body) } fn redirect(req: &Request) -> Response {