chuanyue-service/server/src/controller/account_controller.rs

41 lines
1.5 KiB
Rust

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<WhiteContext>,
Json(req): Json<AuthenticateGooleAccountReq>
) -> ResResult<LoginAccount> {
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<WhiteContext>,
Json(req): Json<AuthenticateWithPassword>
) -> ResResult<LoginAccount> {
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<Context>,
Json(refresh_token): Json<RefreshToken>
) -> ResResult<RefreshTokenResult> {
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
}