1pub mod messages;
8pub mod sync;
9pub mod sync_token;
10pub mod syncv4;
11
12use arminius_lib_component::{Component, ServerState};
13use axum::{
14 Router,
15 routing::{get, post},
16};
17
18use crate::messages::get_message_events_handler;
19
20#[derive(Debug)]
22pub struct SyncComponent;
23
24impl Component for SyncComponent {
25 fn router() -> Router<ServerState> {
26 Router::new()
27 .route("/_matrix/client/v3/sync", get(sync::sync_events_handler))
28 .route("/_matrix/client/v3/rooms/{roomId}/messages", get(get_message_events_handler))
29 .route(
30 "/_matrix/client/unstable/org.matrix.simplified_msc3575/sync",
31 post(syncv4::handler::sync_events_handler),
32 )
33 }
34}