diff options
Diffstat (limited to 'src/server.rs')
-rw-r--r-- | src/server.rs | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/server.rs b/src/server.rs index 2b0cff8..12ffedb 100644 --- a/src/server.rs +++ b/src/server.rs @@ -42,20 +42,25 @@ fn make_renderer() -> HandlebarsEngine { fn quotes(r: &mut Request) -> IronResult<Response> { let mut result = Map::new(); - let quote_id = { - let map = itry!(r.get_ref::<params::Params>()); - match map.get("id") { - Some(¶ms::Value::String(ref id)) => Some(itry!(id.parse::<i64>())), - _ => None, - } + let (quote_id, ordering) = { + let map = itry!(r.get_ref::<params::Params>()); + let quote_id = match map.get("id") { + Some(¶ms::Value::String(ref id)) => Some(itry!(id.parse::<i64>())), + _ => None, + }; + let ordering = match map.get("order") { + Some(¶ms::Value::String(ref ordering)) => ordering.clone(), + _ => "".to_string(), + }; + (quote_id, ordering) }; let quotes = { let mu = r.get::<Write<State>>().unwrap(); let state = mu.lock().unwrap(); match quote_id { - Some(id) => vec!(data::get_quote(&state.connection, id)?), - None => data::get_quotes(&state.connection)?, + Some(id) => vec![data::get_quote(&state.connection, id)?], + None => data::get_quotes(&state.connection, &ordering)?, } }; result.insert("quotes".to_string(), to_json("es)); |