feat(web push): sub / unsub routes

This commit is contained in:
Paul Makles
2022-02-10 22:14:07 +00:00
parent 9f1eda4af0
commit 6d230e57f5
2 changed files with 37 additions and 11 deletions

View File

@@ -1,11 +1,25 @@
use revolt_quark::{EmptyResponse, Result};
use revolt_quark::{EmptyResponse, Error, Result};
use mongodb::bson::doc;
use rauth::entities::{Model, Session, WebPushSubscription};
use rocket::serde::json::Json;
use rauth::{
entities::{Model, Session, WebPushSubscription},
logic::Auth,
};
use rocket::{serde::json::Json, State};
#[post("/subscribe"/*, data = "<data>"*/)]
pub async fn req(/*mut session: Session, data: Json<WebPushSubscription>*/) -> Result<EmptyResponse>
{
todo!()
#[post("/subscribe", data = "<data>")]
pub async fn req(
auth: &State<Auth>,
mut session: Session,
data: Json<WebPushSubscription>,
) -> Result<EmptyResponse> {
session.subscription = Some(data.into_inner());
session
.save(&auth.db, None)
.await
.map(|_| EmptyResponse)
.map_err(|_| Error::DatabaseError {
operation: "save",
with: "session",
})
}

View File

@@ -1,9 +1,21 @@
use revolt_quark::{EmptyResponse, Result};
use revolt_quark::{EmptyResponse, Error, Result};
use mongodb::bson::doc;
use rauth::entities::{Model, Session};
use rauth::{
entities::{Model, Session},
logic::Auth,
};
use rocket::State;
#[post("/unsubscribe")]
pub async fn req(/*mut session: Session*/) -> Result<EmptyResponse> {
todo!()
pub async fn req(auth: &State<Auth>, mut session: Session) -> Result<EmptyResponse> {
session.subscription = None;
session
.save(&auth.db, None)
.await
.map(|_| EmptyResponse)
.map_err(|_| Error::DatabaseError {
operation: "save",
with: "session",
})
}