use ::session::AuthedUser; use api::http::State; use api::rest::{AppResponseData, NoData}; use crate::errors::ApiError; use crate::services::avatar::AvatarDto; use crate::services::service::UserService; #[utoipa::path( get, path = "/me/avatar", tag = "user", description = "读取当前用户头像元数据;未设置时返回空数据。", responses( (status = 200, description = "current avatar", body = AppResponseData>), (status = 404, description = "resource not found", body = AppResponseData), (status = 401, description = "authentication required", body = AppResponseData) ) )] pub async fn get_avatar( State(service): State, AuthedUser(uid): AuthedUser, ) -> Result>, ApiError> { let avatar = service.avatars.current_avatar(uid).await?; Ok(AppResponseData::ok(avatar)) }