From 52f1a9034c2addd7b93de8fb771c625984dcb2df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7alo=20Val=C3=A9rio?= Date: Sun, 14 Jul 2019 21:39:53 +0100 Subject: [PATCH] simplify the handle subscription action --- src/actions.rs | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/actions.rs b/src/actions.rs index 71dfe10..5014a04 100644 --- a/src/actions.rs +++ b/src/actions.rs @@ -9,30 +9,17 @@ use utils::{setup_logging, Pool}; pub fn handle_subscription(db: &Pool, data: &HashMap) -> bool { let log = setup_logging(); - let mode; - let req_callback; - let req_topic; + let mode = data.get("hub.mode").expect("Mode not provided"); + let req_callback = data.get("hub.callback").expect("Callback not provided"); + let req_topic = data.get("hub.topic").expect("Topic not provided"); let timestamp = SystemTime::now() .duration_since(UNIX_EPOCH) .expect("Invalid Time") .as_secs(); - let now = i32::try_from(timestamp).ok().unwrap(); - let conn = db.get().unwrap(); - - match data.get("hub.mode") { - Some(value) => mode = value, - None => return false, - } - - match data.get("hub.callback") { - Some(value) => req_callback = value, - None => return false, - } - - match data.get("hub.topic") { - Some(value) => req_topic = value, - None => return false, - } + let now = i32::try_from(timestamp) + .ok() + .expect("Unable to calculate time"); + let conn = db.get().expect("Unable to grab a DB connection"); debug!( log, @@ -79,4 +66,20 @@ pub fn handle_subscription(db: &Pool, data: &HashMap) -> bool { } #[cfg(test)] -mod tests {} +mod tests { + use super::*; + use diesel::r2d2::{self, ConnectionManager}; + use std::collections::HashMap; + + #[test] + #[should_panic] + fn test_handle_subscription_bad_data() { + let manager = ConnectionManager::::new("test.db"); + let pool = r2d2::Pool::builder() + .build(manager) + .expect("Failed to create pool."); + let hashmap = HashMap::new(); + + handle_subscription(&pool, &hashmap); + } +}