9c9c8f468a
恢复创作、项目、我的平台侧栏与现役搜索 恢复全宽个人页及资料编辑、充值兑换、社区反馈和 API Key 入口 迁移平台资料、钱包和设置客户端并移除旧创作依赖 新增 Vite 与 ESLint 退役模块门禁并补齐界面和搜索测试 同步旧创作退役方案、平台入口决策与踩坑记录
60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
import type { RuntimeSettings } from '../../../packages/shared/src/contracts/runtime';
|
|
import {
|
|
type ApiRequestOptions,
|
|
type ApiRetryOptions,
|
|
requestJson,
|
|
} from '../apiClient';
|
|
|
|
const PLATFORM_SETTINGS_API_PATH = '/api/runtime/settings';
|
|
const PLATFORM_SETTINGS_READ_RETRY: ApiRetryOptions = {
|
|
maxRetries: 1,
|
|
baseDelayMs: 180,
|
|
maxDelayMs: 480,
|
|
};
|
|
const PLATFORM_SETTINGS_WRITE_RETRY: ApiRetryOptions = {
|
|
maxRetries: 1,
|
|
baseDelayMs: 240,
|
|
maxDelayMs: 640,
|
|
retryUnsafeMethods: true,
|
|
};
|
|
|
|
type PlatformSettingsRequestOptions = ApiRequestOptions & {
|
|
signal?: AbortSignal;
|
|
};
|
|
|
|
export function getPlatformRuntimeSettings(
|
|
options: PlatformSettingsRequestOptions = {},
|
|
) {
|
|
const { signal, ...requestOptions } = options;
|
|
return requestJson<RuntimeSettings>(
|
|
PLATFORM_SETTINGS_API_PATH,
|
|
{ method: 'GET', signal },
|
|
'读取设置失败',
|
|
{
|
|
...requestOptions,
|
|
retry: requestOptions.retry ?? PLATFORM_SETTINGS_READ_RETRY,
|
|
},
|
|
);
|
|
}
|
|
|
|
export function putPlatformRuntimeSettings(
|
|
settings: RuntimeSettings,
|
|
options: PlatformSettingsRequestOptions = {},
|
|
) {
|
|
const { signal, ...requestOptions } = options;
|
|
return requestJson<RuntimeSettings>(
|
|
PLATFORM_SETTINGS_API_PATH,
|
|
{
|
|
method: 'PUT',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify(settings),
|
|
signal,
|
|
},
|
|
'保存设置失败',
|
|
{
|
|
...requestOptions,
|
|
retry: requestOptions.retry ?? PLATFORM_SETTINGS_WRITE_RETRY,
|
|
},
|
|
);
|
|
}
|