12_validation/
12_validation.rs1use flyer::{
2 request::Request,
3 response::Response,
4 routing::next::Next,
5 server,
6 validation::Rules,
7};
8
9pub async fn register_form(req: Request, res: Response, next: Next) -> Response {
10 let mut rules = Rules::new();
11
12 rules.rule("email", vec!["required", "email"]);
14 rules.rule("password", vec!["required", "min:5"]);
15
16 return rules.handle(req, res, next).await;
18}
19
20pub async fn upload_documents_form(req: Request, res: Response, next: Next) -> Response {
21 let mut rules = Rules::new();
22
23 rules.rule("documents.*.name", vec!["required", "string", "min:5", "max:120"]);
25 rules.rule("documents.*.file", vec!["required_with:files.*.name", "extensions:pdf,docx"]);
26
27 return rules.handle(req, res, next).await;
29}
30
31pub async fn register(_req: Request, res: Response) -> Response {
32 return res.html("<h1>Registration Successful!</h1>");
33}
34
35pub async fn upload(_req: Request, res: Response) -> Response {
36 return res.html("<h1>Uploaded Documents Successful!</h1>");
37}
38
39fn main() {
40 let server = server("127.0.0.1", 9999);
41
42 server.router().group("/", |router| {
43 router.post("register", register).middleware(register_form);
44 router.post("documents", upload).middleware(upload_documents_form);
45 });
46
47 print!("\r\n\r\nRunning server: {}\r\n\r\n", server.address());
48
49 server.listen();
50}