From 232b2df90bbda043cc5e6a7bed77f7f0edb14176 Mon Sep 17 00:00:00 2001
From: rafliesa <rflisaa@gmail.com>
Date: Fri, 28 Mar 2025 09:46:27 +0700
Subject: [PATCH] Implement unsubscribe function in Notification service.

---
 src/service/notification.rs | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/service/notification.rs b/src/service/notification.rs
index c692d79..862ab81 100644
--- a/src/service/notification.rs
+++ b/src/service/notification.rs
@@ -15,7 +15,20 @@ impl NotificationService {
         let product_type_str: &str = product_type_upper.as_str();
         let subscriber_result: Subscriber = SubscriberRepository::add(product_type_str, subscriber);
         return Ok(subscriber_result);
-        
+
+    }
+
+    pub fn unsubscribe(product_type: &str, url: &str) -> Result<Subscriber> {
+        let product_type_upper: String = product_type.to_uppercase();
+        let product_type_str: &str = product_type_upper.as_str();
+        let result: Option<Subscriber> = SubscriberRepository::delete(product_type_str, url);
+        if result.is_none() {
+            return Err(compose_error_response(
+                Status::NotFound, 
+                String::from("Subscriber not found.")
+            ));
+        }
+        return  Ok(result.unwrap());
     }
 }
 
-- 
GitLab