Use Result for last_notification_read as zero-default not appropriate.

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-10-29 22:11:42 +00:00
parent 9c5caa3a5f
commit 1f0cfec5ca
3 changed files with 6 additions and 4 deletions

View File

@@ -812,6 +812,7 @@ async fn load_joined_room(
services
.pusher
.last_notification_read(sender_user, room_id)
.ok()
})
.into();
@@ -872,8 +873,9 @@ async fn load_joined_room(
.map(Into::into)
});
let send_notification_counts =
last_notification_read.is_none_or(|last_count| last_count.gt(&since));
let send_notification_counts = last_notification_read
.flatten()
.is_none_or(|last_count| last_count.gt(&since));
let notification_count: OptionFuture<_> = send_notification_counts
.then(|| {

View File

@@ -102,6 +102,7 @@ async fn matcher(
services
.pusher
.last_notification_read(sender_user, &room_id)
.unwrap_or_default()
})
.into();

View File

@@ -50,14 +50,13 @@ pub async fn highlight_count(&self, user_id: &UserId, room_id: &RoomId) -> u64 {
#[implement(super::Service)]
#[tracing::instrument(level = "debug", skip(self), ret(level = "trace"))]
pub async fn last_notification_read(&self, user_id: &UserId, room_id: &RoomId) -> u64 {
pub async fn last_notification_read(&self, user_id: &UserId, room_id: &RoomId) -> Result<u64> {
let key = (room_id, user_id);
self.db
.roomuserid_lastnotificationread
.qry(&key)
.await
.deserialized()
.unwrap_or(0)
}
#[implement(super::Service)]