From 442f30d54c80690c05f4a44dbe1ec24827e43d56 Mon Sep 17 00:00:00 2001 From: asShidqi <fayyed76@gmail.com> Date: Fri, 28 Mar 2025 19:49:49 +0700 Subject: [PATCH] Implement list_all function in Subscriber repository --- src/repository/subscriber.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/repository/subscriber.rs b/src/repository/subscriber.rs index d81e388..e56c06b 100644 --- a/src/repository/subscriber.rs +++ b/src/repository/subscriber.rs @@ -10,4 +10,22 @@ lazy_static! { pub struct SubscriberRepository; impl SubscriberRepository { -} \ No newline at end of file + pub fn add(product_type: &str, subscriber: Subscriber) -> Subscriber { + let subscriber_value = subscriber.clone(); + if SUBSCRIBERS.get(product_type).is_none() { + SUBSCRIBERS.insert(String::from(product_type), DashMap::new()); + }; + + SUBSCRIBERS.get(product_type).unwrap() + .insert(subscriber_value.url.clone(), subscriber_value); + return subsriber; + } + + pub fn list_all(product_type: &str) -> Vec<Subscriber> { + if SUBSCRIBERS.get(product_type).is_none() { + SUBSCRIBER.insert(String::from(product_type), DashMap::new()); + } + return SUBSCRIBERS.get(product_type).unwrap().iter() + .map(|f| f.value().clone()).collect(); + } +} \ No newline at end of file -- GitLab