add: mark all notifications as read/unread

fix: anonymous avatar/username
This commit is contained in:
trisua 2025-05-22 22:54:06 -04:00
parent 37e68079d8
commit 3f6f1eda9f
7 changed files with 118 additions and 10 deletions

View file

@ -237,6 +237,10 @@ pub fn routes() -> Router {
"/notifications/{id}/read_status",
post(notifications::update_read_status_request),
)
.route(
"/notifications/all/read_status",
post(notifications::update_all_read_status_request),
)
// community memberships
.route(
"/communities/{id}/join",

View file

@ -87,3 +87,24 @@ pub async fn update_read_status_request(
Err(e) => Json(e.into()),
}
}
pub async fn update_all_read_status_request(
jar: CookieJar,
Extension(data): Extension<State>,
Json(req): Json<UpdateNotificationRead>,
) -> impl IntoResponse {
let data = &(data.read().await).0;
let user = match get_user_from_token!(jar, data) {
Some(ua) => ua,
None => return Json(Error::NotAllowed.into()),
};
match data.update_all_notifications_read(&user, req.read).await {
Ok(_) => Json(ApiReturn {
ok: true,
message: "Notifications updated".to_string(),
payload: (),
}),
Err(e) => Json(e.into()),
}
}