From ab4faf0c45f09bef72c717d676cc167f98ac0615 Mon Sep 17 00:00:00 2001
From: lantry-glitch <allan.kwek.18@gmail.com>
Date: Fri, 28 Mar 2025 11:27:33 +0700
Subject: [PATCH] Implement delete function in Subscriber repository.

---
 src/repository/subscriber.rs | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/repository/subscriber.rs b/src/repository/subscriber.rs
index fa3714b..51eeb32 100644
--- a/src/repository/subscriber.rs
+++ b/src/repository/subscriber.rs
@@ -20,7 +20,7 @@ impl SubscriberRepository {
         return subscriber;
     }    
 
-    
+
     pub fn list_all(product_type: &str) -> Vec<Subscriber> {
         if SUBSCRIBERS.get(product_type).is_none() {
             SUBSCRIBERS.insert(String::from(product_type), DashMap::new());
@@ -29,4 +29,16 @@ impl SubscriberRepository {
             .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;
+    }
+    
 }
-- 
GitLab