Refactor routing
This commit is contained in:
parent
f40b6ce70d
commit
c0521b5703
1 changed files with 11 additions and 7 deletions
|
@ -61,18 +61,22 @@ impl WikiLookup {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reserved_lookup(&self, path: &str, _query: Option<&str>) -> <Self as Lookup>::Future {
|
fn reserved_lookup(&self, path: &str, _query: Option<&str>) -> <Self as Lookup>::Future {
|
||||||
match split_one(path) {
|
let (head, tail) = match split_one(path) {
|
||||||
Ok((ref x, Some(asset))) if x == "_assets" =>
|
Ok(x) => x,
|
||||||
|
Err(x) => return Box::new(failed(x.into())),
|
||||||
|
};
|
||||||
|
|
||||||
|
match (head.as_ref(), tail) {
|
||||||
|
("_assets", Some(asset)) =>
|
||||||
Box::new(asset_lookup(asset)),
|
Box::new(asset_lookup(asset)),
|
||||||
Ok((ref x, None)) if x == "_changes" =>
|
("_changes", None) =>
|
||||||
// TODO Use query to fill in `before` argument to ChangesResource
|
// TODO Use query to fill in `before` argument to ChangesResource
|
||||||
Box::new(finished(Some(Box::new(ChangesResource::new(self.state.clone(), None)) as BoxResource))),
|
Box::new(finished(Some(Box::new(ChangesResource::new(self.state.clone(), None)) as BoxResource))),
|
||||||
Ok((ref x, None)) if x == "_new" =>
|
("_new", None) =>
|
||||||
Box::new(finished(Some(Box::new(NewArticleResource::new(self.state.clone(), None)) as BoxResource))),
|
Box::new(finished(Some(Box::new(NewArticleResource::new(self.state.clone(), None)) as BoxResource))),
|
||||||
Ok((ref x, None)) if x == "_sitemap" =>
|
("_sitemap", None) =>
|
||||||
Box::new(finished(Some(Box::new(SitemapResource::new(self.state.clone())) as BoxResource))),
|
Box::new(finished(Some(Box::new(SitemapResource::new(self.state.clone())) as BoxResource))),
|
||||||
Ok(_) => Box::new(finished(None)),
|
_ => Box::new(finished(None)),
|
||||||
Err(x) => return Box::new(failed(x.into())),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue