From e3488325a64717bc0622b79b2069cf54a7b95777 Mon Sep 17 00:00:00 2001
From: Andrew4Coding <andrewdevitoaryo@gmail.com>
Date: Thu, 27 Mar 2025 23:16:53 +0800
Subject: [PATCH] Implement add function in Subscriber repository

---
 src/repository/subscriber.rs | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/repository/subscriber.rs b/src/repository/subscriber.rs
index 857ec9c..e92612d 100644
--- a/src/repository/subscriber.rs
+++ b/src/repository/subscriber.rs
@@ -3,11 +3,22 @@ use lazy_static::lazy_static;
 use crate::model::subscriber::Subscriber;
 
 lazy_static! {
-    pub static ref SUBSCRIBERS: DashMap<String, Subscriber> = DashMap::new();
+    pub static ref SUBSCRIBERS: DashMap<String, DashMap<String, Subscriber>> = DashMap::new();
 }
 
 pub struct SubscriberRepository;
 
 impl SubscriberRepository {
-    
+    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 subscriber;
+    }
 }
\ No newline at end of file
-- 
GitLab