拆分工单资料映射

This commit is contained in:
yml2213
2026-08-21 18:22:41 +08:00
parent 8c058d71b1
commit 90527344ca
2 changed files with 39 additions and 23 deletions
@@ -43,6 +43,10 @@ import {
normalizeStatuses, normalizeStatuses,
normalizeUploadedFiles, normalizeUploadedFiles,
} from './worker-input-normalizers.js' } from './worker-input-normalizers.js'
import {
mapAcceptanceForResponse,
resolveCollectSubmittedFieldValues,
} from './work-order-material-mappers.js'
export { export {
assertWithdrawChannelAllowedForAmount, assertWithdrawChannelAllowedForAmount,
isWorkerPasswordStrong, isWorkerPasswordStrong,
@@ -1119,29 +1123,10 @@ export function matchesOptionalText(ruleValue: unknown, sourceValue: unknown) {
) )
} }
export function mapAcceptanceForResponse(value: unknown) { export {
const acceptance = safeParseJson(value) mapAcceptanceForResponse,
const files = normalizeUploadedFiles(acceptance.files).map((file) => resolveCollectSubmittedFieldValues,
refreshUploadedFileUrls(file), } from './work-order-material-mappers.js'
)
const imageUrls = normalizeStringArray(acceptance.imageUrls).map((url) =>
refreshStoredFileUrl(url),
)
return {
...acceptance,
files,
imageUrls,
}
}
export function resolveCollectSubmittedFieldValues(workOrder: WorkOrderRow) {
const material = safeParseJson(workOrder.material_json)
const collect =
material.collect && typeof material.collect === 'object' && !Array.isArray(material.collect)
? safeParseJson(material.collect)
: {}
return normalizeSubmittedFields(collect.fields)
}
export function isIgnorableWorkerAuthError(error: unknown) { export function isIgnorableWorkerAuthError(error: unknown) {
return IGNORABLE_WORKER_AUTH_ERROR_CODES.has( return IGNORABLE_WORKER_AUTH_ERROR_CODES.has(
@@ -0,0 +1,31 @@
import type { WorkOrderRow } from '../../repositories/worker-platform/index.js'
import { safeParseJson } from '../admin/admin-query-utils.js'
import {
refreshStoredFileUrl,
refreshUploadedFileUrls,
} from '../file-storage/file-storage-service.js'
import {
normalizeStringArray,
normalizeSubmittedFields,
normalizeUploadedFiles,
} from './worker-input-normalizers.js'
export function mapAcceptanceForResponse(value: unknown) {
const acceptance = safeParseJson(value)
const files = normalizeUploadedFiles(acceptance.files).map((file) =>
refreshUploadedFileUrls(file),
)
const imageUrls = normalizeStringArray(acceptance.imageUrls).map((url) =>
refreshStoredFileUrl(url),
)
return { ...acceptance, files, imageUrls }
}
export function resolveCollectSubmittedFieldValues(workOrder: WorkOrderRow) {
const material = safeParseJson(workOrder.material_json)
const collect =
material.collect && typeof material.collect === 'object' && !Array.isArray(material.collect)
? safeParseJson(material.collect)
: {}
return normalizeSubmittedFields(collect.fields)
}