70 lines
1.7 KiB
Rust
70 lines
1.7 KiB
Rust
use rocket::{get, request::FlashMessage};
|
|
use rocket_dyn_templates::Template;
|
|
use serde::Serialize;
|
|
|
|
use crate::routes::authentication::Authenticated;
|
|
|
|
// HELPERS AND ROUTES FOR / (HOME PAGE)
|
|
|
|
#[derive(Debug, Serialize)]
|
|
pub struct HomeContext {
|
|
pub flash_name: Option<String>,
|
|
pub flash_msg: Option<String>,
|
|
pub title: Option<String>,
|
|
}
|
|
|
|
impl HomeContext {
|
|
pub fn build() -> HomeContext {
|
|
HomeContext {
|
|
flash_name: None,
|
|
flash_msg: None,
|
|
title: None,
|
|
}
|
|
}
|
|
}
|
|
|
|
#[get("/")]
|
|
pub fn index(auth: Authenticated) -> Template {
|
|
let context = HomeContext {
|
|
flash_name: None,
|
|
flash_msg: None,
|
|
title: None,
|
|
};
|
|
Template::render("index", &context)
|
|
}
|
|
|
|
// HELPERS AND ROUTES FOR /help
|
|
|
|
#[derive(Debug, Serialize)]
|
|
pub struct HelpContext {
|
|
pub back: Option<String>,
|
|
pub flash_name: Option<String>,
|
|
pub flash_msg: Option<String>,
|
|
pub title: Option<String>,
|
|
}
|
|
|
|
impl HelpContext {
|
|
pub fn build() -> HelpContext {
|
|
HelpContext {
|
|
back: None,
|
|
flash_name: None,
|
|
flash_msg: None,
|
|
title: None,
|
|
}
|
|
}
|
|
}
|
|
|
|
#[get("/help")]
|
|
pub fn help(flash: Option<FlashMessage>) -> Template {
|
|
let mut context = HelpContext::build();
|
|
context.back = Some("/".to_string());
|
|
context.title = Some("Help".to_string());
|
|
// check to see if there is a flash message to display
|
|
if let Some(flash) = flash {
|
|
// add flash message contents to the context object
|
|
context.flash_name = Some(flash.kind().to_string());
|
|
context.flash_msg = Some(flash.message().to_string());
|
|
};
|
|
Template::render("help", &context)
|
|
}
|