diff --git a/src/controller/mod.rs b/src/controller/mod.rs index ef4a9cee11a90f2815de14c2ae3988bcaac5f354..f005f332142de64411b238a1b7652c963d333ac6 100644 --- a/src/controller/mod.rs +++ b/src/controller/mod.rs @@ -7,6 +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![notification::subscribe]) + .mount("notification", routes![notification::subscribe,notification::unsubscribe]) }); } diff --git a/src/controller/notification.rs b/src/controller/notification.rs index 6f74f58cf9ded0641b7698127aa8c2e99001ab38..f16df5f55a1d3e7addc8c3dfb2bf2f2bff114139 100644 --- a/src/controller/notification.rs +++ b/src/controller/notification.rs @@ -11,3 +11,11 @@ pub fn subscribe(product_type: &str, subscriber: Json<Subscriber>) -> Result<Cre Err(e) => Err(e) } } + +#[delete("/unsubscribe/<product_type>/<url>")] +pub fn unsubscribe(product_type: &str, url: &str) -> Result<Json<Subscriber>> { + return match NotificationService::unsubscribe(product_type, url) { + Ok(f) => Ok(Json::from(f)), + Err(e) => Err(e) + } +}