Skip to main content

arminius_lib_sync/
lib.rs

1// SPDX-FileCopyrightText: 2025 BWI GmbH
2//
3// SPDX-License-Identifier: Apache-2.0
4
5//! Arminius's sync library
6
7pub 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/// Component implementing endpoints for sync
21#[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}