use ::session::AuthedUser; use api::http::{Json, State}; use api::rest::AppResponseData; use crate::errors::{ApiError, GitApiError}; use crate::service::GitService; use crate::service::patches::ParsedPatchDto; #[utoipa::path( post, path = "/repos/utils/patch/parse", tag = "patches", description = "解析补丁文本并统计涉及文件与增删行数。", request_body = String, responses( (status = 200, description = "parse patch", body = AppResponseData) ) )] pub async fn patch_parse( State(service): State, AuthedUser(_uid): AuthedUser, Json(content): Json, ) -> Result, ApiError> { let out = service .patch_parse(content) .await .map_err(GitApiError::from)?; Ok(AppResponseData::ok(out)) }