+
+ /// Gets the number of unread messages
+ pub async fn get_unread_messages(
+ pool: &mut DbPool<'_>,
+ my_person_id: PersonId,
+ ) -> Result<i64, Error> {
+ use diesel::dsl::count;
+ let conn = &mut get_conn(pool).await?;
+ private_message::table
+ .filter(private_message::read.eq(false))
+ .filter(private_message::recipient_id.eq(my_person_id))
+ .filter(private_message::deleted.eq(false))
+ .select(count(private_message::id))
+ .first::<i64>(conn)
+ .await
+ }
+}
+
+#[derive(Default)]
+pub struct PrivateMessageQuery {
+ pub unread_only: Option<bool>,
+ pub page: Option<i64>,
+ pub limit: Option<i64>,