summaryrefslogtreecommitdiff
path: root/src/events.rs
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-09-15 23:50:41 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-09-16 11:03:22 -0400
commit491cb3eb34d20140aed80dbb9edc39c4db5335d2 (patch)
treee1e2e009f064dc6dfc8c98d2bf97d8d1f7b45615 /src/events.rs
parent99b33023332393e46f5a661901b980b78e6fb133 (diff)
Consolidate most repository types into a repo module.
Having them contained in the individual endpoint groups conveyed an unintended sense that their intended scope was _only_ that endpoint group. It also made most repo-related import paths _quite_ long. This splits up the repos as follows: * "General applicability" repos - those that are only loosely connected to a single task, and are likely to be shared between tasks - go in crate::repo. * Specialized repos - those tightly connected to a specific task - go in the module for that task, under crate::PATH::repo. In both cases, each repo goes in its own submodule, to make it easier to use the module name as a namespace. Which category a repo goes in is a judgment call. `crate::channel::repo::broadcast` (formerly `channel::repo::messages`) is used outside of `crate::channel`, for example, but its main purpose is to support channel message broadcasts. It could arguably live under `crate::event::repo::channel`, but the resulting namespace is less legible to me.
Diffstat (limited to 'src/events.rs')
-rw-r--r--src/events.rs13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/events.rs b/src/events.rs
index 51f06b4..38d53fc 100644
--- a/src/events.rs
+++ b/src/events.rs
@@ -17,10 +17,9 @@ use futures::{
use crate::{
app::App,
- channel::repo::{channels::Id as ChannelId, messages::BroadcastMessage},
- error::BoxedError,
- error::InternalError,
- login::repo::logins::Login,
+ channel::repo::broadcast,
+ error::{BoxedError, InternalError},
+ repo::{channel, login::Login},
};
pub fn router() -> Router<App> {
@@ -30,7 +29,7 @@ pub fn router() -> Router<App> {
#[derive(serde::Deserialize)]
struct EventsQuery {
#[serde(default, rename = "channel")]
- channels: Vec<ChannelId>,
+ channels: Vec<channel::Id>,
}
async fn on_events(
@@ -71,7 +70,7 @@ async fn on_events(
Ok(sse)
}
-fn to_sse_event(event: ChannelEvent<BroadcastMessage>) -> Result<sse::Event, BoxedError> {
+fn to_sse_event(event: ChannelEvent<broadcast::Message>) -> Result<sse::Event, BoxedError> {
let data = serde_json::to_string(&event)?;
let event = sse::Event::default()
.id(event
@@ -85,7 +84,7 @@ fn to_sse_event(event: ChannelEvent<BroadcastMessage>) -> Result<sse::Event, Box
#[derive(serde::Serialize)]
struct ChannelEvent<M> {
- channel: ChannelId,
+ channel: channel::Id,
#[serde(flatten)]
message: M,
}