morethantext-web/src/main.rs

59 lines
1.6 KiB
Rust
Raw Normal View History

use config::Config;
2022-06-02 13:14:14 -04:00
use tide::{http::StatusCode, Request, Response};
2022-02-26 11:18:08 -05:00
#[async_std::main]
async fn main() -> tide::Result<()> {
let settings = Config::builder()
.set_default("address", "127.0.0.1")?
.set_default("port", "9090")?
.add_source(
config::Environment::with_prefix("MTT")
.try_parsing(true)
.separator("_")
.list_separator(" "),
)
.build()
.unwrap();
2022-02-26 11:18:08 -05:00
let app = app_setup().await;
app.listen(format!(
"{}:{}",
settings.get_string("address").unwrap(),
settings.get_string("port").unwrap()
))
.await?;
2022-02-26 11:18:08 -05:00
Ok(())
}
async fn app_setup() -> tide::Server<()> {
let mut app = tide::new();
app.at("/").get(home);
return app;
}
async fn home(_req: Request<()>) -> tide::Result {
2022-06-02 13:14:14 -04:00
let mut res = Response::new(StatusCode::Ok);
2022-02-26 11:18:08 -05:00
res.set_body("<!DOCTYPE html>
<html>
<body>
<h1>Welcome to BaskinPrattle.</h1>
<p>The code for the site is <a href=\"https://gitea.baskinprattle.com/jbaskin/morethantext-web\">here</a>.</p>
<p>And the latest x86_64 Linux build is <a href=\"https://jenkins.baskinprattle.com/job/morethantext-web/\">here</a>.</p>
2022-02-26 11:18:08 -05:00
</body>
</html>");
res.append_header("Content-Type", "text/html; charset=UTF-8");
Ok(res)
}
#[cfg(test)]
mod basic_tests {
use super::*;
use tide_testing::TideTestingExt;
#[async_std::test]
async fn home_page_available() {
let app = app_setup().await;
let response = app.get("/").await.unwrap();
2022-06-02 13:14:14 -04:00
assert_eq!(response.status(), StatusCode::Ok);
2022-02-26 11:18:08 -05:00
}
}