summaryrefslogtreecommitdiff
path: root/src/channel/routes.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/channel/routes.rs')
-rw-r--r--src/channel/routes.rs15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/channel/routes.rs b/src/channel/routes.rs
index 1f8db5a..067d213 100644
--- a/src/channel/routes.rs
+++ b/src/channel/routes.rs
@@ -5,6 +5,7 @@ use axum::{
routing::{get, post},
Router,
};
+use axum_extra::extract::Query;
use super::app;
use crate::{
@@ -15,6 +16,7 @@ use crate::{
repo::{
channel::{self, Channel},
login::Login,
+ sequence::Sequence,
},
};
@@ -28,8 +30,17 @@ pub fn router() -> Router<App> {
.route("/api/channels/:channel", post(on_send))
}
-async fn list(State(app): State<App>, _: Login) -> Result<Channels, Internal> {
- let channels = app.channels().all().await?;
+#[derive(Default, serde::Deserialize)]
+struct ListQuery {
+ resume_point: Option<Sequence>,
+}
+
+async fn list(
+ State(app): State<App>,
+ _: Login,
+ Query(query): Query<ListQuery>,
+) -> Result<Channels, Internal> {
+ let channels = app.channels().all(query.resume_point).await?;
let response = Channels(channels);
Ok(response)