summaryrefslogtreecommitdiff
path: root/src/server.rs
diff options
context:
space:
mode:
authorKjetil Orbekk <kjetil.orbekk@gmail.com>2017-07-10 10:31:23 -0400
committerKjetil Orbekk <kjetil.orbekk@gmail.com>2017-07-10 10:31:23 -0400
commit15267c895e04f782aaae5fc7c24cd89d6db54f95 (patch)
tree779a4e13e26da4ace950249aadee1162640aa498 /src/server.rs
parent1cc4f17a742e0d0ef047842ac854e1d1ee8ec8b7 (diff)
add: Page to add new quotes.
Diffstat (limited to 'src/server.rs')
-rw-r--r--src/server.rs28
1 files changed, 27 insertions, 1 deletions
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<Response> {
}
fn add_post(r: &mut Request) -> IronResult<Response> {
+ 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::<Write<State>>().unwrap();
+ let state = mu.lock().unwrap();
+ data::new_quote(&state.connection, &date, &nick, &quote)?;
+ }
+
Ok(Response::with((
status::Ok,
Header(ContentType::html()),
- Template::new("add", Map::new()),
+ Template::new("add_post", Map::new()),
)))
}