Skip to content
Clone
main
29 lines 849 B Rust
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<ParsedPatchDto>)
)
)]
pub async fn patch_parse(
State(service): State<GitService>,
AuthedUser(_uid): AuthedUser,
Json(content): Json<String>,
) -> Result<AppResponseData<ParsedPatchDto>, ApiError> {
let out = service
.patch_parse(content)
.await
.map_err(GitApiError::from)?;
Ok(AppResponseData::ok(out))
}