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

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

diff --git a/src/repository/subscriber.rs b/src/repository/subscriber.rs
index a4f80f2..f4add07 100644
--- a/src/repository/subscriber.rs
+++ b/src/repository/subscriber.rs
@@ -1,3 +1,5 @@
+use std::result;
+
 use dashmap::DashMap;
 use lazy_static::lazy_static;
 use crate::model::subscriber::Subscriber;
@@ -31,4 +33,19 @@ impl SubscriberRepository {
         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_some() {
+            return Some(result.unwrap().1);
+        } else {
+            return None;
+        }
+    }
 }
\ No newline at end of file
-- 
GitLab