From 0ec8fbc4cb6494e01374b4151769c1826a0d9ccd Mon Sep 17 00:00:00 2001
From: vissutagunawan <vglim3653@gmail.com>
Date: Thu, 27 Mar 2025 09:17:20 +0700
Subject: [PATCH] Create Notification service struct skeleton.

---
 src/controller/mod.rs          | 12 +++++++++++-
 src/controller/notification.rs |  6 ++++++
 src/repository/subscriber.rs   |  4 ++--
 src/service/mod.rs             |  1 +
 src/service/notification.rs    | 11 +++++++++++
 5 files changed, 31 insertions(+), 3 deletions(-)
 create mode 100644 src/controller/notification.rs
 create mode 100644 src/service/notification.rs

diff --git a/src/controller/mod.rs b/src/controller/mod.rs
index 861f657..38cfed4 100644
--- a/src/controller/mod.rs
+++ b/src/controller/mod.rs
@@ -1,10 +1,20 @@
 pub mod product;
+pub mod notification;
 
 use rocket::fairing::AdHoc;
 
 pub fn route_stage() -> AdHoc {
     return AdHoc::on_ignite("Initializing controller routes...", |rocket| async {
         rocket
-            .mount("/product", routes![product::create, product::list, product::read, product::delete])
+        .mount(
+            "/product",
+            routes![
+                product::create,
+                product::list,
+                product::read,
+                product::delete
+            ],
+        )
+        .mount("/notification", routes![])
     });
 }
diff --git a/src/controller/notification.rs b/src/controller/notification.rs
new file mode 100644
index 0000000..b411b3c
--- /dev/null
+++ b/src/controller/notification.rs
@@ -0,0 +1,6 @@
+use rocket::response::status::Created;
+use rocket::serde::json::Json;
+
+use crate::model::subscriber::Subscriber;
+use crate::service::notification::NotificationService;
+use bambangshop::Result;
\ No newline at end of file
diff --git a/src/repository/subscriber.rs b/src/repository/subscriber.rs
index 6b9e92c..9e78e86 100644
--- a/src/repository/subscriber.rs
+++ b/src/repository/subscriber.rs
@@ -7,9 +7,9 @@ lazy_static!{
     static ref SUBSCRIBERS: DashMap<String, DashMap<String, Subscriber>> = DashMap::new();
 }
 
-pub struct SubscirberRepository;
+pub struct SubscriberRepository;
 
-impl SubscirberRepository{
+impl SubscriberRepository{
     pub fn add(product_type: &str, subscriber: Subscriber) -> Subscriber {
         let subscriber_value = subscriber.clone();
         if SUBSCRIBERS.get(product_type).is_none() {
diff --git a/src/service/mod.rs b/src/service/mod.rs
index 68024e1..0d6deb1 100644
--- a/src/service/mod.rs
+++ b/src/service/mod.rs
@@ -1 +1,2 @@
 pub mod product;
+pub mod notification;
diff --git a/src/service/notification.rs b/src/service/notification.rs
new file mode 100644
index 0000000..dce5cbe
--- /dev/null
+++ b/src/service/notification.rs
@@ -0,0 +1,11 @@
+use crate::model::notification::Notification;
+use crate::model::product::Product;
+use crate::model::subscriber::Subscriber;
+use crate::repository::subscriber::SubscriberRepository;
+use bambangshop::{compose_error_response, Result};
+use rocket::http::Status;
+use std::thread;
+
+pub struct NotificationService;
+
+impl NotificationService {}
\ No newline at end of file
-- 
GitLab