tuwunel_api/client/admin/tokens/
list.rs1use axum::extract::State;
2use futures::StreamExt;
3use synapse_admin_api::registration_tokens::list::v1 as list;
4use tuwunel_core::Result;
5
6use super::token_response;
7use crate::{Ruma, client::admin::require_admin};
8
9pub(crate) async fn admin_list_tokens_route(
14 State(services): State<crate::State>,
15 body: Ruma<list::Request>,
16) -> Result<list::Response> {
17 require_admin(&services, body.sender_user()).await?;
18
19 if body.valid == Some(false) {
20 return Ok(list::Response { registration_tokens: Vec::new() });
21 }
22
23 let registration_tokens = services
24 .registration_tokens
25 .iterate_tokens()
26 .await
27 .map(|token| token_response(token.token, token.info))
28 .collect()
29 .await;
30
31 Ok(list::Response { registration_tokens })
32}