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, Extension(request_context): Extension, ) -> Json { json_success_body( Some(&request_context), AuthLoginOptionsResponse { available_login_methods: build_available_login_methods( state.config.sms_auth_enabled, state.config.wechat_auth_enabled, ), }, ) }