feat(admin): 实现系统数据导入导出功能,支持提供商和模型批量配置

This commit is contained in:
fawney19
2026-04-11 21:39:04 +08:00
parent 801e16c988
commit a9f610fa69
36 changed files with 3247 additions and 409 deletions
@@ -1,3 +1,4 @@
use crate::handlers::admin::shared::AdminTypedObjectPatch;
use aether_admin::provider::endpoints as admin_provider_endpoints_pure;
use aether_data_contracts::repository::provider_catalog::{
StoredProviderCatalogEndpoint, StoredProviderCatalogKey,
@@ -82,3 +83,6 @@ pub(crate) struct AdminProviderEndpointUpdateRequest {
#[serde(default)]
pub(crate) format_acceptance_config: Option<serde_json::Value>,
}
pub(crate) type AdminProviderEndpointUpdatePatch =
AdminTypedObjectPatch<AdminProviderEndpointUpdateRequest>;
@@ -1,7 +1,7 @@
use super::extractors::admin_endpoint_id;
use super::payloads::{
build_admin_provider_endpoint_response, endpoint_key_counts_by_format,
AdminProviderEndpointUpdateRequest,
AdminProviderEndpointUpdatePatch,
};
use super::support::build_admin_endpoints_data_unavailable_response;
use crate::handlers::admin::request::{AdminAppState, AdminRequestContext};
@@ -75,8 +75,8 @@ pub(super) async fn maybe_handle(
.into_response(),
));
};
let payload = match serde_json::from_value::<AdminProviderEndpointUpdateRequest>(raw_value) {
Ok(payload) => payload,
let patch = match AdminProviderEndpointUpdatePatch::from_object(raw_payload) {
Ok(patch) => patch,
Err(_) => {
return Ok(Some(
(
@@ -118,12 +118,7 @@ pub(super) async fn maybe_handle(
));
};
let updated_record = match state
.build_admin_update_provider_endpoint_record(
&provider,
&existing_endpoint,
&raw_payload,
payload,
)
.build_admin_update_provider_endpoint_record(&provider, &existing_endpoint, patch)
.await
{
Ok(record) => record,