diff --git a/src/repository/mod.rs b/src/repository/mod.rs index 9df928f76648ea9951ed8a1d00b96acb69f1634d..e4371e0316d93924c7f25de9c036dd5a89759f2a 100644 --- a/src/repository/mod.rs +++ b/src/repository/mod.rs @@ -1,2 +1,2 @@ pub mod product; -pub mod subscribers; \ No newline at end of file +pub mod subscriber; \ No newline at end of file diff --git a/src/repository/subscribers.rs b/src/repository/subscriber.rs similarity index 100% rename from src/repository/subscribers.rs rename to src/repository/subscriber.rs diff --git a/src/service/notification.rs b/src/service/notification.rs index 53fa0575e482508b657b3bc4772a7f673a4eac0e..5af4f3fb3f180d934c82e271792c880df20fdd6e 100644 --- a/src/service/notification.rs +++ b/src/service/notification.rs @@ -3,3 +3,17 @@ 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::{self, Subscriber}; +use crate::repository::subscriber::SubscriberRepository; + +pub struct NotificationService; + +impl NotificationService { + pub fn subscribe(product_type: &str, subscriber: Subscriber) -> Result<Subscriber> { + let product_type_upper: String = product_type.to_uppercase(); + let product_type_str: &str = product_type_upper.as_str(); + let subscriber_result: Subscriber = SubscriberRepository::add(product_type_str, subscriber); + return Ok(subscriber_result) + } +}