summaryrefslogtreecommitdiff
path: root/src/server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server.rs')
-rw-r--r--src/server.rs21
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(&params::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(&params::Value::String(ref id)) => Some(itry!(id.parse::<i64>())),
+ _ => None,
+ };
+ let ordering = match map.get("order") {
+ Some(&params::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(&quotes));