chuanyue-service/system/src/controller/account_controller.rs
2024-09-23 20:08:43 +08:00

39 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}, res::{response::{ ResData, ResResult}, validator}};
use crate::service;
/// google账号登录
/// post: /account/google
pub async fn authenticate_google(
Extension(context): Extension<WhiteContext>,
Json(req): Json<AuthenticateGooleAccountReq>
) -> ResResult<ResData<LoginAccount>> {
validator::validate_params(&req, context.get_lang_tag())?;
service::account_service::authenticate_google(context, req).await
}
/// 账号密码登录
pub async fn authenticate_with_password(
Extension(context): Extension<WhiteContext>,
Json(req): Json<AuthenticateWithPassword>
) -> ResResult<ResData<LoginAccount>> {
validator::validate_params(&req, context.get_lang_tag())?;
service::sys_account_service::authenticate_with_password(context, req).await
}
/// 刷新token
pub async fn refresh_token(
Extension(context): Extension<Context>,
Json(refresh_token): Json<RefreshToken>
) -> ResResult<ResData<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<ResData<()>> {
service::sys_account_service::add_account().await
}