From 90527344ca68541d2e4620c6819db0e07fe4a0b3 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Fri, 21 Aug 2026 18:22:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=86=E5=88=86=E5=B7=A5=E5=8D=95=E8=B5=84?= =?UTF-8?q?=E6=96=99=E6=98=A0=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/services/worker-platform/mappers.ts | 31 +++++-------------- .../work-order-material-mappers.ts | 31 +++++++++++++++++++ 2 files changed, 39 insertions(+), 23 deletions(-) create mode 100644 apps/backend/src/services/worker-platform/work-order-material-mappers.ts diff --git a/apps/backend/src/services/worker-platform/mappers.ts b/apps/backend/src/services/worker-platform/mappers.ts index 78cd2c24..446f5653 100644 --- a/apps/backend/src/services/worker-platform/mappers.ts +++ b/apps/backend/src/services/worker-platform/mappers.ts @@ -43,6 +43,10 @@ import { normalizeStatuses, normalizeUploadedFiles, } from './worker-input-normalizers.js' +import { + mapAcceptanceForResponse, + resolveCollectSubmittedFieldValues, +} from './work-order-material-mappers.js' export { assertWithdrawChannelAllowedForAmount, isWorkerPasswordStrong, @@ -1119,29 +1123,10 @@ export function matchesOptionalText(ruleValue: unknown, sourceValue: unknown) { ) } -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) -} +export { + mapAcceptanceForResponse, + resolveCollectSubmittedFieldValues, +} from './work-order-material-mappers.js' export function isIgnorableWorkerAuthError(error: unknown) { return IGNORABLE_WORKER_AUTH_ERROR_CODES.has( diff --git a/apps/backend/src/services/worker-platform/work-order-material-mappers.ts b/apps/backend/src/services/worker-platform/work-order-material-mappers.ts new file mode 100644 index 00000000..dfa9fbe9 --- /dev/null +++ b/apps/backend/src/services/worker-platform/work-order-material-mappers.ts @@ -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) +}