diff --git a/src/controller/mod.rs b/src/controller/mod.rs index 5124c8193f66beddad34ceb71264aa53f3f937cd..146d98d9d20190b7254b0ca6bc52211b79225459 100644 --- a/src/controller/mod.rs +++ b/src/controller/mod.rs @@ -15,6 +15,9 @@ pub fn route_stage() -> AdHoc { 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 bc0ea02f075ff3207a974ad9e8bb1036a70dda3e..ab2f7ba13ed2b91e9656615e70488a0edfcf1dbc 100644 --- a/src/controller/notification.rs +++ b/src/controller/notification.rs @@ -15,3 +15,11 @@ pub fn subscribe( Err(e) => Err(e), }; } + +#[post("/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), + }; +}