use axum::{Extension, Json}; use domain::{dto::account::{AuthenticateGooleAccountReq, AuthenticateWithPassword, RefreshToken}, vo::account::{LoginAccount, RefreshTokenResult}}; use library::{context::{Context, WhiteContext}, model::{response::ResResult, validator}}; use crate::service; /// post: /account/google /// google账号登录 pub async fn authenticate_google( Extension(context): Extension, Json(req): Json ) -> ResResult { validator::validate_params(&req, context.get_lang_tag())?; service::account_service::authenticate_google(context, req).await } /// post: /account/sys /// 账号密码登录 pub async fn authenticate_with_password( Extension(context): Extension, Json(req): Json ) -> ResResult { validator::validate_params(&req, context.get_lang_tag())?; service::sys_account_service::authenticate_with_password(context, req).await } /// post: /account/refresh-token /// 刷新token pub async fn refresh_token( Extension(context): Extension, Json(refresh_token): Json ) -> ResResult { tracing::debug!("刷新token, {:?}", context); validator::validate_params(&refresh_token, "")?; service::account_service::refresh_token(context, refresh_token.token).await } /// 添加管理员账号 pub async fn add_account() -> ResResult<()> { service::sys_account_service::add_account().await }