Skip to main content

routing/
routing.rs

1use flyer::{server, request::Request, response::Response};
2
3pub async fn index<'a>(_req: &'a mut Request, res: &'a mut Response) -> &'a mut Response {
4    return res.html("<h1>Users List</h1>");
5}
6
7pub async fn store<'a>(_req: &'a mut Request, res: &'a mut Response) -> &'a mut Response {
8    return res.redirect("users/1");
9}
10
11pub async fn view<'a>(req: &'a mut Request, res: &'a mut Response) -> &'a mut Response {
12    return res.html(format!("<h1>User {}</h1>", req.parameter("user")).as_str());
13}
14
15pub async fn update<'a>(req: &'a mut Request, res: &'a mut Response) -> &'a mut Response {
16    return res.redirect(format!("users/{}", req.parameter("user")).as_str());
17}
18
19pub async fn destroy<'a>(_req: &'a mut Request, res: &'a mut Response) -> &'a mut Response {
20    return res.redirect("users")
21}
22
23fn main() {
24    let server = server("127.0.0.1", 9999);
25    
26    server.router().group("/", |router| {
27        router.group("users", |router| {
28            router.get("/", index);
29            router.post("/", store);
30            router.group("{user}", |router| {
31                router.get("/", view);
32                router.patch("/", update);
33                router.delete("/", destroy);
34            });
35        });
36    });
37
38    print!("\r\n\r\nRunning server: {}\r\n\r\n", server.address());
39
40    server.listen();
41}