diff --git a/src/server.rs b/src/server.rs index 782cc02..566e4b8 100644 --- a/src/server.rs +++ b/src/server.rs @@ -1,5 +1,5 @@ -extern crate rocket; - +use rocket::fs::FileServer; +use rocket::fs::NamedFile; use rocket::http::ContentType; use rocket::http::Header; @@ -9,15 +9,21 @@ use crate::translate; pub async fn run_server() { rocket::build() - .mount("/", routes![hello, generate]) + .mount("/", routes![index, healthz, generate]) + .mount("/static", FileServer::from("static")) .launch() .await .unwrap(); } -#[get("/hello")] -fn hello() -> &'static str { - "Hello, world!" +#[get("/")] +async fn index() -> Option { + NamedFile::open("static/index.html").await.ok() +} + +#[get("/healthz")] +fn healthz() -> &'static str { + "ok" } // TODO: Wrap this with memoization via https://docs.rs/michie/latest/michie/ @@ -34,6 +40,7 @@ fn generate_binary_stl(mushroom: mushroom::Mushroom) -> Vec { return binary_stl; } +/// Responder class for BinarySTL or Error. #[derive(Responder)] enum AsyncBinaryStlResponder { #[response(status = 500)] @@ -67,6 +74,7 @@ async fn generate_helper(mushroom: mushroom::Mushroom) -> AsyncBinaryStlResponde }; } +/// Handler for /generate GEt endpoint. #[get("/generate?&&&&")] async fn generate( stalk_h: Option,