diff --git a/src/repository/subscriber.rs b/src/repository/subscriber.rs index e56c06bb838dce446aa3c26fe8e83f9323947da9..fed48434601cd1a3737867740f6052b82b03d45c 100644 --- a/src/repository/subscriber.rs +++ b/src/repository/subscriber.rs @@ -18,14 +18,25 @@ impl SubscriberRepository { SUBSCRIBERS.get(product_type).unwrap() .insert(subscriber_value.url.clone(), subscriber_value); - return subsriber; + return subscriber; } pub fn list_all(product_type: &str) -> Vec<Subscriber> { if SUBSCRIBERS.get(product_type).is_none() { - SUBSCRIBER.insert(String::from(product_type), DashMap::new()); + SUBSCRIBERS.insert(String::from(product_type), DashMap::new()); } return SUBSCRIBERS.get(product_type).unwrap().iter() .map(|f| f.value().clone()).collect(); } + + pub fn delete(product_type: &str, url: &str) -> Option<Subscriber> { + if SUBSCRIBERS.get(product_type).is_none() { + SUBSCRIBERS.insert(String::from(product_type), DashMap::new()); + } + let result = SUBSCRIBERS.get(product_type).unwrap().remove(url); + if !result.is_none() { + return Some(result.unwrap().1); + } + return None; + } } \ No newline at end of file