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