Skip to main content

10_cookie/
10_cookie.rs

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