From 15267c895e04f782aaae5fc7c24cd89d6db54f95 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Mon, 10 Jul 2017 10:31:23 -0400 Subject: add: Page to add new quotes. --- src/server.rs | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'src/server.rs') diff --git a/src/server.rs b/src/server.rs index eec0e72..7c1b3db 100644 --- a/src/server.rs +++ b/src/server.rs @@ -40,6 +40,10 @@ fn make_renderer() -> HandlebarsEngine { "add".to_string(), include_str!("data/templates/add.hbs").to_string(), ); + templates.insert( + "add_post".to_string(), + include_str!("data/templates/add_post.hbs").to_string(), + ); e.add(Box::new(MemorySource(templates))); if let Err(r) = e.reload() { @@ -80,10 +84,32 @@ fn add_get(r: &mut Request) -> IronResult { } fn add_post(r: &mut Request) -> IronResult { + let nick = get_param(r, "nick")?; + let date = get_param(r, "date")?; + let quote = get_param(r, "quote")?; + + macro_rules! check { + ($i:ident) => ( + if $i.is_empty() { + return Err(From::from(LinoError::BadRequest( + format!("missing parameter: {}", stringify!($i))))); + } + ) + } + check!(nick); + check!(date); + check!(quote); + + { + let mu = r.get::>().unwrap(); + let state = mu.lock().unwrap(); + data::new_quote(&state.connection, &date, &nick, "e)?; + } + Ok(Response::with(( status::Ok, Header(ContentType::html()), - Template::new("add", Map::new()), + Template::new("add_post", Map::new()), ))) } -- cgit v1.2.3