| fn route(c: &str, mut r: &mut Response) { | fn route(c: &str, mut r: &mut Response) { | ||||
| let mut routes = vec![]; | let mut routes = vec![]; | ||||
| routes.push(Route::new("api/hi", api_hi)); | |||||
| routes.push(Route::new("api/bye", api_bye)); | |||||
| routes.push(Route::new("v1/hi", api_hi)); | |||||
| routes.push(Route::new("v1/bye", api_bye)); | |||||
| // println!("Asked to fetch {}", c); | // println!("Asked to fetch {}", c); | ||||
| //assert!(Path::new(c).exists()); | //assert!(Path::new(c).exists()); | ||||
| r.set_header("HTTP/1.1 200 OK\r\n\r\n"); | r.set_header("HTTP/1.1 200 OK\r\n\r\n"); | ||||
| r.add_file_contents("index.html"); | r.add_file_contents("index.html"); | ||||
| } else if c.starts_with("api/") { | } else if c.starts_with("api/") { | ||||
| let apipath = c.replace("api/",""); | |||||
| let apipath = apipath.as_str(); | |||||
| let mut iter_routes = routes.into_iter(); | let mut iter_routes = routes.into_iter(); | ||||
| let valid_route = iter_routes.find(|x| x.get_path() == c); | |||||
| let valid_route = iter_routes.find(|x| x.get_path() == apipath); | |||||
| match valid_route { | match valid_route { | ||||
| Some(rt) => { | Some(rt) => { | ||||
| (rt.get_action())(&c, &mut r); | |||||
| (rt.get_action())(&apipath, &mut r); | |||||
| }, | }, | ||||
| None => { | None => { | ||||
| api_none(&c, &mut r); | api_none(&c, &mut r); |