39 lines
1.5 KiB
Rust
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
|
|
} |