38 lines
1.1 KiB
Rust
38 lines
1.1 KiB
Rust
use handlebars_iron::handlebars::to_json;
|
|
use handlebars_iron::Template;
|
|
use iron::prelude::{Request, Response};
|
|
use iron::{IronResult, Set, status};
|
|
use mount::Mount;
|
|
use serde_json::value::{Map, Value};
|
|
use staticfile::Static;
|
|
use std::path::Path;
|
|
|
|
pub fn render_page(name: &str, mut template_data: Map<String, Value>) -> Template {
|
|
template_data.insert("parent".to_string(), to_json(&"layout/base".to_owned()));
|
|
Template::new(name, template_data)
|
|
}
|
|
|
|
pub struct AssetsHandler;
|
|
|
|
impl AssetsHandler {
|
|
|
|
pub fn new(prefix: &str, mount_path: &str) -> Mount {
|
|
let mut assets_mount = Mount::new();
|
|
assets_mount.mount(prefix, Static::new(Path::new(mount_path)));
|
|
assets_mount
|
|
}
|
|
}
|
|
|
|
pub fn hello_world (_request: &mut Request) -> IronResult<Response> {
|
|
use serde_json::value::{Map, Value};
|
|
|
|
let mut data = Map::new();
|
|
data.insert("title".to_string(), to_json(&"Media Collection CRUD".to_owned()));
|
|
|
|
let mut response = Response::new();
|
|
response.set_mut(render_page("index", data))
|
|
.set_mut(status::Ok);
|
|
|
|
Ok(response)
|
|
}
|