this repo has no description
1use crate::state::AppState;
2use axum::{
3 Json,
4 extract::State,
5 http::HeaderMap,
6 response::{IntoResponse, Response},
7};
8use serde::Deserialize;
9use serde_json::json;
10
11#[derive(Deserialize)]
12#[serde(rename_all = "camelCase")]
13pub struct ConfirmChannelVerificationInput {
14 pub channel: String,
15 pub identifier: String,
16 pub code: String,
17}
18
19pub async fn confirm_channel_verification(
20 State(state): State<AppState>,
21 headers: HeaderMap,
22 Json(input): Json<ConfirmChannelVerificationInput>,
23) -> Response {
24 let token_input = crate::api::server::VerifyTokenInput {
25 token: input.code,
26 identifier: input.identifier,
27 };
28
29 match crate::api::server::verify_token_internal(&state, Some(&headers), token_input).await {
30 Ok(output) => Json(json!({"success": output.success})).into_response(),
31 Err((status, err_json)) => (status, err_json).into_response(),
32 }
33}