summaryrefslogtreecommitdiff
path: root/src/app.rs
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-09-13 00:26:03 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-09-13 02:42:27 -0400
commit067e3da1900d052a416c56e1c047640aa23441ae (patch)
tree8baad4240d2532216f2530f5c974479e557c675a /src/app.rs
parent5d76d0712e07040d9aeeebccb189d75636a07c7a (diff)
Transmit messages via `/:chan/send` and `/:chan/events`.
Diffstat (limited to 'src/app.rs')
-rw-r--r--src/app.rs16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/app.rs b/src/app.rs
index 4195fdc..f349fd4 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -1,15 +1,23 @@
use sqlx::sqlite::SqlitePool;
-use crate::{channel::app::Channels, index::app::Index, login::app::Logins};
+use crate::error::BoxedError;
+
+use crate::{
+ channel::app::{Broadcaster, Channels},
+ index::app::Index,
+ login::app::Logins,
+};
#[derive(Clone)]
pub struct App {
db: SqlitePool,
+ broadcaster: Broadcaster,
}
impl App {
- pub fn from(db: SqlitePool) -> Self {
- Self { db }
+ pub async fn from(db: SqlitePool) -> Result<Self, BoxedError> {
+ let broadcaster = Broadcaster::from_database(&db).await?;
+ Ok(Self { db, broadcaster })
}
}
@@ -23,6 +31,6 @@ impl App {
}
pub fn channels(&self) -> Channels {
- Channels::new(&self.db)
+ Channels::new(&self.db, &self.broadcaster)
}
}