2019-06-30 16:45:17 +00:00
|
|
|
#![feature(proc_macro_hygiene, async_await)]
|
2016-08-07 06:14:05 +00:00
|
|
|
|
2018-08-07 02:58:07 +00:00
|
|
|
#[macro_use] extern crate rocket;
|
2016-10-09 04:02:42 +00:00
|
|
|
|
2016-12-29 20:06:31 +00:00
|
|
|
#[cfg(test)]
|
|
|
|
mod tests;
|
|
|
|
|
2016-10-09 04:02:42 +00:00
|
|
|
use std::collections::HashMap;
|
2016-08-07 06:14:05 +00:00
|
|
|
|
2016-10-12 07:14:42 +00:00
|
|
|
use rocket::request::Form;
|
2016-09-12 01:57:04 +00:00
|
|
|
use rocket::response::Redirect;
|
2016-10-04 00:09:13 +00:00
|
|
|
use rocket::http::{Cookie, Cookies};
|
2018-10-07 00:24:11 +00:00
|
|
|
use rocket_contrib::templates::Template;
|
2016-08-07 06:14:05 +00:00
|
|
|
|
|
|
|
#[derive(FromForm)]
|
|
|
|
struct Message {
|
2016-12-29 20:06:31 +00:00
|
|
|
message: String,
|
2016-08-07 06:14:05 +00:00
|
|
|
}
|
|
|
|
|
2016-10-12 07:14:42 +00:00
|
|
|
#[post("/submit", data = "<message>")]
|
2019-06-13 02:41:29 +00:00
|
|
|
fn submit(mut cookies: Cookies<'_>, message: Form<Message>) -> Redirect {
|
2017-01-27 07:08:15 +00:00
|
|
|
cookies.add(Cookie::new("message", message.into_inner().message));
|
2016-09-12 01:57:04 +00:00
|
|
|
Redirect::to("/")
|
2016-08-07 06:14:05 +00:00
|
|
|
}
|
|
|
|
|
2016-09-04 11:06:28 +00:00
|
|
|
#[get("/")]
|
2019-06-13 02:41:29 +00:00
|
|
|
fn index(cookies: Cookies<'_>) -> Template {
|
2017-03-07 09:19:06 +00:00
|
|
|
let cookie = cookies.get("message");
|
2016-10-09 04:02:42 +00:00
|
|
|
let mut context = HashMap::new();
|
2017-01-27 07:08:15 +00:00
|
|
|
if let Some(ref cookie) = cookie {
|
|
|
|
context.insert("message", cookie.value());
|
2016-10-09 04:02:42 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
Template::render("index", &context)
|
2016-08-07 06:14:05 +00:00
|
|
|
}
|
|
|
|
|
2017-05-19 10:29:08 +00:00
|
|
|
fn rocket() -> rocket::Rocket {
|
|
|
|
rocket::ignite().mount("/", routes![submit, index]).attach(Template::fairing())
|
|
|
|
}
|
|
|
|
|
2016-08-07 06:14:05 +00:00
|
|
|
fn main() {
|
2017-05-19 10:29:08 +00:00
|
|
|
rocket().launch();
|
2016-08-07 06:14:05 +00:00
|
|
|
}
|