deduplicate task parsing and masking helpers

This commit is contained in:
yml
2026-05-21 18:50:07 +08:00
parent efa41ba976
commit 17a615b8de
9 changed files with 151 additions and 491 deletions
@@ -1,6 +1,10 @@
import { getAgisoShopConfig } from '../platforms/agiso/shop-config-service.js'
import { safeParseJson } from './admin-query-utils.js'
import { normalizeAdminRole } from './admin-auth-service.js'
import {
parseTaskContext as parseTaskContextValue,
parseTaskState as parseTaskStateValue,
} from '../../utils/task-json.js'
import type { AdminViewerSessionInput } from '../../types/admin-read-inputs.js'
import type { OrderItemRow, TaskRow } from '../../types/repository-rows.js'
@@ -227,39 +231,11 @@ export function resolveDisplayShopName(provider: unknown, shopId: unknown, shopN
}
export function parseTaskContext(task: TaskLike | null | undefined): JsonRecord {
const value = task?.context_json
if (!value) {
return {}
}
if (typeof value === 'object') {
return value
}
try {
return JSON.parse(String(value || '{}'))
} catch {
return {}
}
return parseTaskContextValue(task)
}
export function parseTaskState(task: TaskLike | null | undefined): JsonRecord {
const value = task?.state_json
if (!value) {
return {}
}
if (typeof value === 'object') {
return value
}
try {
return JSON.parse(String(value || '{}'))
} catch {
return {}
}
return parseTaskStateValue(task)
}
export function resolveOrderItemTitle(item: Partial<OrderItemRow> | null | undefined): string {