use ::session::AuthedUser; use api::http::{Query, State}; use api::rest::{AppResponseData, NoData}; use crate::errors::ApiError; use crate::services::service::UserService; use crate::services::suspensions::{IncludeRevokedQuery, SuspensionDto}; #[utoipa::path( get, path = "/me/suspensions", tag = "user", description = "查看当前用户的处罚历史,可仅筛选仍生效记录。", params( IncludeRevokedQuery, ), responses( (status = 200, description = "my suspensions", body = AppResponseData>), (status = 404, description = "resource not found", body = AppResponseData), (status = 401, description = "authentication required", body = AppResponseData) ) )] pub async fn my_suspensions( State(service): State, AuthedUser(uid): AuthedUser, Query(query): Query, ) -> Result>, ApiError> { let list = service.my_suspensions(uid, query).await?; Ok(AppResponseData::ok(list)) }