refactor: 迁移大鱼与汪汪 runtime 请求骨架

This commit is contained in:
2026-06-03 16:35:01 +08:00
parent e9534baace
commit ab49c32e33
6 changed files with 99 additions and 127 deletions

View File

@@ -5,15 +5,11 @@ import type {
BarkBattleRunStartResponse,
BarkBattleRuntimeConfig,
} from '../../../packages/shared/src/contracts/barkBattle';
import {
type ApiRetryOptions,
requestJson,
} from '../apiClient';
import {
buildRuntimeGuestAuthOptions,
buildRuntimeGuestHeaders,
type RuntimeGuestRequestOptions,
} from '../runtimeGuestAuth';
import { type ApiRetryOptions } from '../apiClient';
import { type RuntimeGuestRequestOptions } from '../runtimeGuestAuth';
import { buildRuntimeApiPath, requestRuntimeJson } from '../runtimeRequest';
const BARK_BATTLE_RUNTIME_API_BASE = '/api/runtime/bark-battle';
const BARK_BATTLE_RUNTIME_READ_RETRY: ApiRetryOptions = {
maxRetries: 1,
@@ -34,16 +30,17 @@ export function getBarkBattleRuntimeConfig(
workId: string,
options: BarkBattleRuntimeRequestOptions = {},
) {
const requestOptions = buildRuntimeGuestAuthOptions(options);
return requestJson<BarkBattleRuntimeConfig>(
`/api/runtime/bark-battle/works/${encodeURIComponent(workId)}/config`,
{ method: 'GET', headers: buildRuntimeGuestHeaders(options) },
'读取汪汪声浪大作战配置失败',
{
retry: BARK_BATTLE_RUNTIME_READ_RETRY,
...requestOptions,
},
);
return requestRuntimeJson<BarkBattleRuntimeConfig>({
url: buildRuntimeApiPath(
BARK_BATTLE_RUNTIME_API_BASE,
'works',
workId,
'config',
),
fallbackMessage: '读取汪汪声浪大作战配置失败',
retry: BARK_BATTLE_RUNTIME_READ_RETRY,
requestOptions: options,
});
}
export function startBarkBattleRun(
@@ -51,39 +48,34 @@ export function startBarkBattleRun(
payload: Partial<BarkBattleRunStartRequest> = {},
options: BarkBattleRuntimeRequestOptions = {},
) {
const requestOptions = buildRuntimeGuestAuthOptions(options);
return requestJson<BarkBattleRunStartResponse>(
`/api/runtime/bark-battle/works/${encodeURIComponent(workId)}/runs`,
{
method: 'POST',
headers: buildRuntimeGuestHeaders(options, { 'Content-Type': 'application/json' }),
body: JSON.stringify({
...payload,
workId: payload.workId ?? workId,
}),
return requestRuntimeJson<BarkBattleRunStartResponse>({
url: buildRuntimeApiPath(
BARK_BATTLE_RUNTIME_API_BASE,
'works',
workId,
'runs',
),
method: 'POST',
jsonBody: {
...payload,
workId: payload.workId ?? workId,
},
'启动汪汪声浪大作战正式局失败',
{
retry: BARK_BATTLE_RUNTIME_WRITE_RETRY,
...requestOptions,
},
);
fallbackMessage: '启动汪汪声浪大作战正式局失败',
retry: BARK_BATTLE_RUNTIME_WRITE_RETRY,
requestOptions: options,
});
}
export function getBarkBattleRun(
runId: string,
options: BarkBattleRuntimeRequestOptions = {},
) {
const requestOptions = buildRuntimeGuestAuthOptions(options);
return requestJson<unknown>(
`/api/runtime/bark-battle/runs/${encodeURIComponent(runId)}`,
{ method: 'GET', headers: buildRuntimeGuestHeaders(options) },
'读取汪汪声浪大作战单局失败',
{
retry: BARK_BATTLE_RUNTIME_READ_RETRY,
...requestOptions,
},
);
return requestRuntimeJson<unknown>({
url: buildRuntimeApiPath(BARK_BATTLE_RUNTIME_API_BASE, 'runs', runId),
fallbackMessage: '读取汪汪声浪大作战单局失败',
retry: BARK_BATTLE_RUNTIME_READ_RETRY,
requestOptions: options,
});
}
export function finishBarkBattleRun(
@@ -91,21 +83,20 @@ export function finishBarkBattleRun(
payload: BarkBattleRunFinishRequest,
options: BarkBattleRuntimeRequestOptions = {},
) {
const requestOptions = buildRuntimeGuestAuthOptions(options);
return requestJson<BarkBattleFinishResponse>(
`/api/runtime/bark-battle/runs/${encodeURIComponent(runId)}/finish`,
{
method: 'POST',
headers: buildRuntimeGuestHeaders(options, { 'Content-Type': 'application/json' }),
body: JSON.stringify({
...payload,
runId: payload.runId ?? runId,
}),
return requestRuntimeJson<BarkBattleFinishResponse>({
url: buildRuntimeApiPath(
BARK_BATTLE_RUNTIME_API_BASE,
'runs',
runId,
'finish',
),
method: 'POST',
jsonBody: {
...payload,
runId: payload.runId ?? runId,
},
'提交汪汪声浪大作战成绩失败',
{
retry: BARK_BATTLE_RUNTIME_WRITE_RETRY,
...requestOptions,
},
);
fallbackMessage: '提交汪汪声浪大作战成绩失败',
retry: BARK_BATTLE_RUNTIME_WRITE_RETRY,
requestOptions: options,
});
}