summaryrefslogtreecommitdiffstats
path: root/src/sse.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/sse.rs')
-rw-r--r--src/sse.rs35
1 files changed, 0 insertions, 35 deletions
diff --git a/src/sse.rs b/src/sse.rs
deleted file mode 100644
index 88befd1..0000000
--- a/src/sse.rs
+++ /dev/null
@@ -1,35 +0,0 @@
-use axum::{
- extract::{Path, State},
- response::{
- sse::{Event, KeepAlive},
- Sse,
- },
- routing::get,
- Router,
-};
-use futures::Stream;
-use tokio_stream::StreamExt;
-
-use crate::{service::ServiceHandles, Error};
-
-pub fn router() -> Router<ServiceHandles> {
- axum::Router::new().route("/:name", get(service_events))
-}
-
-pub async fn service_events(
- Path(name): Path<String>,
- State(services): State<ServiceHandles>,
-) -> Result<Sse<impl Stream<Item = Result<Event, axum::Error>>>, Error> {
- let stream = services
- .get(&name)
- .ok_or_else(|| Error::ServiceNotFound(name))?
- .into_stream()
- .map(|s| match s {
- crate::Status::Ok => Event::default().event("ok"),
- crate::Status::Error(None) => Event::default().event("error"),
- crate::Status::Error(Some(msg)) => Event::default().event("error").data(msg),
- })
- .map(Ok);
-
- Ok(Sse::new(stream).keep_alive(KeepAlive::default()))
-}