planet-wars/backend/src/routes/info.rs

31 lines
719 B
Rust
Raw Normal View History

2020-04-06 20:22:10 +02:00
use rocket::{Route};
use rocket::response::Redirect;
use rocket_contrib::templates::Template;
use crate::util::*;
2020-04-07 11:31:28 +02:00
const MAX: usize = 6;
2020-04-06 20:22:10 +02:00
2020-04-09 22:57:12 +02:00
/// Redirects to the first info page
2020-04-06 20:22:10 +02:00
#[get("/info")]
2020-04-09 22:57:12 +02:00
fn info_base() -> Redirect {
2020-04-06 20:22:10 +02:00
Redirect::to("/info/1")
}
2020-04-09 22:57:12 +02:00
/// Renders the <page> info page
2020-04-06 20:22:10 +02:00
#[get("/info/<page>")]
2020-04-09 22:57:12 +02:00
async fn info(page: usize) -> Template {
2020-04-06 20:22:10 +02:00
let context = Context::new_with("info", json!({
"page": page,
"next": if page + 1 <= MAX { Some(page + 1) } else { None },
"prev": if page - 1 > 0 { Some(page - 1) } else { None }
}));
2020-04-09 22:57:12 +02:00
Template::render(format!("info/info_{}", page), &context)
2020-04-06 20:22:10 +02:00
}
pub fn fuel(routes: &mut Vec<Route>) {
2020-04-09 22:57:12 +02:00
routes.extend(routes![info_base, info]);
2020-04-06 20:22:10 +02:00
}