Skip to main content

cookie/
cookie.rs

1use std::time::Duration;
2
3use flyer::{
4    request::Request,
5    response::Response,
6    server,
7};
8
9pub async fn home_view<'a>(req: &'a mut Request, res: &'a mut Response) -> &'a mut Response {
10    req.cookies()
11        .set("user_id", "1")
12        .set_expires(Duration::from_secs((60 * 60) * 2));
13
14    return res.html("<h1>Cookie has been set visit route /cookie</h1>");
15}
16
17pub async fn cookie<'a>(req: &'a mut Request, res: &'a mut Response) -> &'a mut Response {
18    return res.html(format!("<h1>User ID cookie is {}</h1>", req.cookies().get("user_id")).as_str());
19}
20
21pub async fn remove_cookie<'a>(req: &'a mut Request, res: &'a mut Response) -> &'a mut Response {
22    let _ = req.cookies().remove("user_id");
23    return res.redirect("/");
24}
25
26fn main() {
27    let server = server("127.0.0.1", 9999);
28
29    server.router().group("/", |router| {
30        router.get("/", home_view);
31        router.get("cookie", cookie);
32        router.delete("cookie/remove", remove_cookie);
33    });
34
35    print!("\r\n\r\nRunning server: {}\r\n\r\n", server.address());
36
37    server.listen();
38}