From da15ef0f15ea692cb13e3f0440ecdd88afd5721f Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Mon, 6 Nov 2023 18:41:12 -0800 Subject: [PATCH] Move main.rs to bin/ and stub some message stuff. --- server/Cargo.toml | 1 + server/src/{main.rs => bin/server.rs} | 8 +++++--- server/src/error.rs | 9 +++++++++ server/src/lib.rs | 2 ++ server/src/nm.rs | 13 +++++++++++++ 5 files changed, 30 insertions(+), 3 deletions(-) rename server/src/{main.rs => bin/server.rs} (93%) create mode 100644 server/src/error.rs create mode 100644 server/src/lib.rs create mode 100644 server/src/nm.rs diff --git a/server/Cargo.toml b/server/Cargo.toml index 09c74dd..3544b5e 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -2,6 +2,7 @@ name = "server" version = "0.1.0" edition = "2021" +default-bin = "server" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/server/src/main.rs b/server/src/bin/server.rs similarity index 93% rename from server/src/main.rs rename to server/src/bin/server.rs index 214a809..be3bcb9 100644 --- a/server/src/main.rs +++ b/server/src/bin/server.rs @@ -13,6 +13,8 @@ use rocket::{ Response, State, }; use rocket_cors::{AllowedHeaders, AllowedOrigins}; +use server::{error::ServerError, nm::threadset_to_messages}; +use shared::Message; #[get("/")] fn hello() -> &'static str { @@ -56,9 +58,9 @@ async fn search( async fn show_pretty( nm: &State, query: &str, -) -> Result, Debug> { - let query = urlencoding::decode(query).map_err(NotmuchError::from)?; - let res = nm.show(&query)?; +) -> Result>, Debug> { + let query = urlencoding::decode(query).map_err(|e| ServerError::from(NotmuchError::from(e)))?; + let res = threadset_to_messages(nm.show(&query).map_err(ServerError::from)?)?; Ok(Json(res)) } diff --git a/server/src/error.rs b/server/src/error.rs new file mode 100644 index 0000000..1c0c705 --- /dev/null +++ b/server/src/error.rs @@ -0,0 +1,9 @@ +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum ServerError { + #[error("notmuch")] + NotmuchError(#[from] notmuch::NotmuchError), + #[error("flatten")] + FlattenError, +} diff --git a/server/src/lib.rs b/server/src/lib.rs new file mode 100644 index 0000000..147b8f1 --- /dev/null +++ b/server/src/lib.rs @@ -0,0 +1,2 @@ +pub mod error; +pub mod nm; diff --git a/server/src/nm.rs b/server/src/nm.rs new file mode 100644 index 0000000..11098b8 --- /dev/null +++ b/server/src/nm.rs @@ -0,0 +1,13 @@ +use shared::Message; + +use crate::error; + +// TODO(wathiede): decide good error type +pub fn threadset_to_messages( + thread_set: notmuch::ThreadSet, +) -> Result, error::ServerError> { + for t in thread_set.0 { + for tn in t.0 {} + } + Ok(Vec::new()) +}