24 lines
712 B
Rust
24 lines
712 B
Rust
use axum::{
|
|
Json,
|
|
extract::{Extension, State},
|
|
};
|
|
use shared_contracts::auth::{AuthLoginOptionsResponse, build_available_login_methods};
|
|
|
|
use crate::{api_response::json_success_body, request_context::RequestContext, state::AppState};
|
|
|
|
pub async fn auth_login_options(
|
|
State(state): State<AppState>,
|
|
Extension(request_context): Extension<RequestContext>,
|
|
) -> Json<serde_json::Value> {
|
|
json_success_body(
|
|
Some(&request_context),
|
|
AuthLoginOptionsResponse {
|
|
available_login_methods: build_available_login_methods(
|
|
state.config.sms_auth_enabled,
|
|
true,
|
|
state.config.wechat_auth_enabled,
|
|
),
|
|
},
|
|
)
|
|
}
|