Skip to main content

tuwunel_api/client/admin/
get_nonce.rs

1use axum::extract::State;
2use synapse_admin_api::register_users::shared_secret_register_nonce as get_nonce;
3use tuwunel_core::{Result, err};
4
5use crate::Ruma;
6
7/// # `GET /_synapse/admin/v1/register`
8///
9/// Issues a short-lived nonce. Returns 404 when the shared secret is not set.
10pub(crate) async fn admin_register_nonce_route(
11	State(services): State<crate::State>,
12	_body: Ruma<get_nonce::v1::Request>,
13) -> Result<get_nonce::v1::Response> {
14	services
15		.admin
16		.register_is_enabled()
17		.then(|| services.admin.issue_register_nonce())
18		.map(get_nonce::v1::Response::new)
19		.ok_or_else(|| err!(Request(Unknown("Shared-secret registration is not enabled"))))
20}