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