From af11854c563fbcfd9c603f5cc81c76e0318d882b Mon Sep 17 00:00:00 2001 From: asShidqi <fayyed76@gmail.com> Date: Fri, 28 Mar 2025 20:11:44 +0700 Subject: [PATCH] Implement subscribe function in Notification service. --- src/controller/mod.rs | 2 ++ src/controller/notification.rs | 14 ++++++++++++++ src/service/mod.rs | 1 + src/service/notification.rs | 12 ++++++++++++ 4 files changed, 29 insertions(+) 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..87c8041 100644 --- a/src/controller/mod.rs +++ b/src/controller/mod.rs @@ -1,4 +1,5 @@ pub mod product; +pub mod notification; use rocket::fairing::AdHoc; @@ -6,5 +7,6 @@ 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("notification", routes![]) }); } diff --git a/src/controller/notification.rs b/src/controller/notification.rs new file mode 100644 index 0000000..c5433f1 --- /dev/null +++ b/src/controller/notification.rs @@ -0,0 +1,14 @@ +use rocket::response::status::Created; +use rocket::serde::json::Json; +use bambangshop::Result; +use crate::model::subscriber::Subscriber; +use crate::service::notification::NotificationService; + +use super::product; + +pub fn subscribe(product_type: &str, subscriber: Subscriber) -> Result<Subscriber> { + let product_type_str: String = product_type.to_uppercase(); + let product_type_str: &str = product_type_str.as_str(); + let subscriber_result: Subscriber = SubscriberRepository::add(product_type_str, subscriber); + return Ok(subscriber_result); +} \ No newline at end of file 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..8493783 --- /dev/null +++ b/src/service/notification.rs @@ -0,0 +1,12 @@ +use std::thread; +use bambangshop::{Result, compose_error_response}; +use rocket::http::Status; +use crate::model::notification::Notification; +use crate::model::product::Product; +use crate::model::subscriber::Subscriber; +use crate::repository::subscriber::SubscriberRepository; + +pub struct NotificationService; + +impl NotificationService { +} \ No newline at end of file -- GitLab