mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-10 03:09:50 +08:00
- 删除 1666 行的 admin/system/shared/system.rs,按职责拆分到独立模块 - 新增 handlers/shared/email_templates.rs 和 system_config_values.rs 存放跨层共用的模板/配置工具函数 - 新增 admin/system/shared/email_templates.rs 存放 admin 专用的模板操作逻辑 - 新增 admin/shared/proxy_errors.rs 存放 build_proxy_error_response - 清理 public/system_modules_helpers 中不属于 public 层的导出 - 新增架构测试守护模块归属边界
28 lines
714 B
Rust
28 lines
714 B
Rust
use axum::{
|
|
body::Body,
|
|
http,
|
|
response::{IntoResponse, Response},
|
|
Json,
|
|
};
|
|
use serde_json::json;
|
|
|
|
pub(crate) fn build_proxy_error_response(
|
|
status: http::StatusCode,
|
|
error_type: &str,
|
|
message: impl Into<String>,
|
|
details: Option<serde_json::Value>,
|
|
) -> Response<Body> {
|
|
let message = message.into();
|
|
let mut error = serde_json::Map::new();
|
|
error.insert("type".to_string(), json!(error_type));
|
|
error.insert("message".to_string(), json!(message));
|
|
if let Some(details) = details {
|
|
error.insert("details".to_string(), details);
|
|
}
|
|
(
|
|
status,
|
|
Json(json!({ "error": serde_json::Value::Object(error) })),
|
|
)
|
|
.into_response()
|
|
}
|