Skip to main content

rustio_core/
defaults.rs

1//! Default routes that scaffolded projects mount via [`with_defaults`]:
2//! `/` (homepage), `/admin` (placeholder), `/docs` (placeholder).
3
4use crate::error::Error;
5use crate::http::{html, text, Request, Response};
6use crate::router::{Params, Router};
7
8const HOME_HTML: &str = include_str!("../assets/home.html");
9
10pub fn homepage() -> Response {
11    html(HOME_HTML)
12}
13
14pub fn admin_placeholder() -> Response {
15    text("RustIO admin — coming soon.")
16}
17
18pub fn docs_placeholder() -> Response {
19    text("RustIO docs — coming soon.")
20}
21
22pub fn with_defaults(router: Router) -> Router {
23    router
24        .get("/", |_req: Request, _p: Params| async {
25            Ok::<Response, Error>(homepage())
26        })
27        .get("/admin", |_req: Request, _p: Params| async {
28            Ok::<Response, Error>(admin_placeholder())
29        })
30        .get("/docs", |_req: Request, _p: Params| async {
31            Ok::<Response, Error>(docs_placeholder())
32        })
33}