From ba96974bdebd6d4ec345907d49944b5ee644ed47 Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Wed, 9 Oct 2024 00:57:31 -0400 Subject: Provide a view of logins to clients. --- src/boot/app.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/boot/app.rs') diff --git a/src/boot/app.rs b/src/boot/app.rs index fc84b3a..03e7230 100644 --- a/src/boot/app.rs +++ b/src/boot/app.rs @@ -2,7 +2,8 @@ use sqlx::sqlite::SqlitePool; use super::{Channel, Snapshot}; use crate::{ - channel::repo::Provider as _, event::repo::Provider as _, message::repo::Provider as _, + channel::repo::Provider as _, event::repo::Provider as _, login::repo::Provider as _, + message::repo::Provider as _, }; pub struct Boot<'a> { @@ -17,8 +18,14 @@ impl<'a> Boot<'a> { pub async fn snapshot(&self) -> Result { let mut tx = self.db.begin().await?; let resume_point = tx.sequence().current().await?; - let channels = tx.channels().all(resume_point.into()).await?; + let logins = tx.logins().all(resume_point.into()).await?; + let logins = logins + .into_iter() + .filter_map(|login| login.as_of(resume_point)) + .collect(); + + let channels = tx.channels().all(resume_point.into()).await?; let channels = { let mut snapshots = Vec::with_capacity(channels.len()); @@ -48,6 +55,7 @@ impl<'a> Boot<'a> { Ok(Snapshot { resume_point, + logins, channels, }) } -- cgit v1.2.3