1use std::time::Duration;
2
3use flyer::{
4 request::Request,
5 response::Response,
6 server,
7 session::cookie::SessionCookieManager,
8 storage::{self, DEFAULT_STORAGE, local::LocalStorage},
9 view::ViewData
10};
11
12pub async fn home<'a>(_req: &'a mut Request, res: &'a mut Response) -> &'a mut Response {
52 return res.view("index.html", Some(ViewData::new()));
53}
54
55#[allow(unused)]
56pub async fn upload<'a>(req: &'a mut Request, res: &'a mut Response) -> &'a mut Response {
57 if req.file("file").is_none() {
58 return res.with_error("file", "The file is required.")
59 .back();
60 }
61
62 let req_save_0 = req.file("file").unwrap().save("file").await.unwrap();
64 let req_backup_0 = req.file("file").unwrap().save_as("backup", "backup").await.unwrap();
65
66 println!("FROM REQUEST SAVE PATH {}", req_save_0);
67 println!("FROM REQUEST SAVE_AS {}", req_backup_0);
68
69 if let Ok(exists) = storage::exists(DEFAULT_STORAGE, &req_save_0) && exists {
70 println!("File exists: {}", req_save_0);
71 }
72
73 if let Ok(_) = storage::delete(DEFAULT_STORAGE, &req_backup_0) {
74 println!("File deleted {}", req_save_0);
75 }
76
77 let req_save_1 = storage::save(DEFAULT_STORAGE, "file", req.file("file").unwrap()).unwrap();
79 let req_backup_1 = storage::save_as(DEFAULT_STORAGE, "backup", "backup_1", req.file("file").unwrap()).unwrap();
80 let exists = storage::exists(DEFAULT_STORAGE, &req_save_1).unwrap();
81 let file = storage::get(DEFAULT_STORAGE, &req_save_1).unwrap();
82 storage::delete(DEFAULT_STORAGE, &req_save_1).unwrap();
83
84 return res.redirect("/");
85}
86
87fn main() {
88 let server = server("127.0.0.1", 9999)
89 .session(SessionCookieManager::new(Duration::from_secs((60 * 60) * 2), "session_cookie_key_name", "encryption"))
90 .storage(DEFAULT_STORAGE, LocalStorage::new(Some("storage")))
91 .view("views")
92 .set_request_max_size(1024 * 100); server.router().group("/", |router| {
95 router.get("/", home);
96 router.post("upload", upload);
97 });
98
99 print!("\r\n\r\nRunning server: {}\r\n\r\n", server.address());
100
101 server.listen();
102}