tuwunel_api/client/
filter.rs1use axum::extract::State;
2use ruma::api::client::filter::{create_filter, get_filter};
3use tuwunel_core::{Result, err};
4
5use crate::Ruma;
6
7pub(crate) async fn get_filter_route(
13 State(services): State<crate::State>,
14 body: Ruma<get_filter::v3::Request>,
15) -> Result<get_filter::v3::Response> {
16 services
17 .users
18 .get_filter(body.sender_user(), &body.filter_id)
19 .await
20 .map(get_filter::v3::Response::new)
21 .map_err(|_| err!(Request(NotFound("Filter not found."))))
22}
23
24pub(crate) async fn create_filter_route(
28 State(services): State<crate::State>,
29 body: Ruma<create_filter::v3::Request>,
30) -> Result<create_filter::v3::Response> {
31 let filter_id = services
32 .users
33 .create_filter(body.sender_user(), &body.filter);
34
35 Ok(create_filter::v3::Response::new(filter_id))
36}