simplify the handle subscription action
This commit is contained in:
parent
18e7554012
commit
52f1a9034c
|
@ -9,30 +9,17 @@ use utils::{setup_logging, Pool};
|
||||||
|
|
||||||
pub fn handle_subscription(db: &Pool, data: &HashMap<String, String>) -> bool {
|
pub fn handle_subscription(db: &Pool, data: &HashMap<String, String>) -> bool {
|
||||||
let log = setup_logging();
|
let log = setup_logging();
|
||||||
let mode;
|
let mode = data.get("hub.mode").expect("Mode not provided");
|
||||||
let req_callback;
|
let req_callback = data.get("hub.callback").expect("Callback not provided");
|
||||||
let req_topic;
|
let req_topic = data.get("hub.topic").expect("Topic not provided");
|
||||||
let timestamp = SystemTime::now()
|
let timestamp = SystemTime::now()
|
||||||
.duration_since(UNIX_EPOCH)
|
.duration_since(UNIX_EPOCH)
|
||||||
.expect("Invalid Time")
|
.expect("Invalid Time")
|
||||||
.as_secs();
|
.as_secs();
|
||||||
let now = i32::try_from(timestamp).ok().unwrap();
|
let now = i32::try_from(timestamp)
|
||||||
let conn = db.get().unwrap();
|
.ok()
|
||||||
|
.expect("Unable to calculate time");
|
||||||
match data.get("hub.mode") {
|
let conn = db.get().expect("Unable to grab a DB connection");
|
||||||
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,
|
|
||||||
}
|
|
||||||
|
|
||||||
debug!(
|
debug!(
|
||||||
log,
|
log,
|
||||||
|
@ -79,4 +66,20 @@ pub fn handle_subscription(db: &Pool, data: &HashMap<String, String>) -> bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[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::<SqliteConnection>::new("test.db");
|
||||||
|
let pool = r2d2::Pool::builder()
|
||||||
|
.build(manager)
|
||||||
|
.expect("Failed to create pool.");
|
||||||
|
let hashmap = HashMap::new();
|
||||||
|
|
||||||
|
handle_subscription(&pool, &hashmap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue