From 32f23243108e86f817392c160bdb8d97023338b3 Mon Sep 17 00:00:00 2001
From: Christian Raphael Heryanto <christian.raphael@ui.ac.id>
Date: Fri, 28 Mar 2025 16:36:08 +0800
Subject: [PATCH] Implement list function in Notification controller.

---
 src/controller/mod.rs          | 3 ++-
 src/controller/notification.rs | 8 ++++++++
 src/service/notification.rs    | 2 +-
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/controller/mod.rs b/src/controller/mod.rs
index b6d9501..d7447fb 100644
--- a/src/controller/mod.rs
+++ b/src/controller/mod.rs
@@ -8,7 +8,8 @@ pub fn route_stage() -> AdHoc {
             routes![
                 notification::subscribe,
                 notification::unsubscribe,
-                notification::receive
+                notification::receive,
+                notification::list,
             ],
         )
     });
diff --git a/src/controller/notification.rs b/src/controller/notification.rs
index 18af254..791043a 100644
--- a/src/controller/notification.rs
+++ b/src/controller/notification.rs
@@ -28,3 +28,11 @@ pub fn receive(notification: Json<Notification>) -> Result<Json<Notification>> {
         Err(e) => Err(e),
     };
 }
+
+#[get("/")]
+pub fn list() -> Result<Json<Vec<Notification>>> {
+    return match NotificationService::list_messages() {
+        Ok(f) => Ok(Json::from(f)),
+        Err(e) => Err(e),
+    };
+}
diff --git a/src/service/notification.rs b/src/service/notification.rs
index ae2845b..14b1f0a 100644
--- a/src/service/notification.rs
+++ b/src/service/notification.rs
@@ -99,7 +99,7 @@ impl NotificationService {
         return Ok(subscriber_result);
     }
 
-    pub fn list messages() -> Result<Vec<String>> {
+    pub fn list_messages() -> Result<Vec<String>> {
         return Ok(NotificationRepository::list_all_as_string());
     }
 }
-- 
GitLab