diff --git a/apps/backend/src/services/order/webhook-service.js b/apps/backend/src/services/order/webhook-service.ts similarity index 98% rename from apps/backend/src/services/order/webhook-service.js rename to apps/backend/src/services/order/webhook-service.ts index 2fc7a1ba..7b8a1628 100644 --- a/apps/backend/src/services/order/webhook-service.js +++ b/apps/backend/src/services/order/webhook-service.ts @@ -16,6 +16,13 @@ import { logWebhook } from '../../utils/logger.js' import { parseAmountToFen } from '../../utils/money.js' import { nowIso } from '../../utils/time.js' +type AgisoTradeWebhookDeps = { + updateWebhookEvent?: typeof updateWebhookEvent + hasConfiguredOrderItems?: typeof hasConfiguredOrderItems + upsertOrderFromWebhook?: typeof upsertOrderFromWebhook + enrichAgisoXianyuTradeOrder?: typeof enrichAgisoXianyuTradeOrder +} + export async function processAgisoTradeWebhook(requestLike) { const parsed = parseAgisoTradeRequest(requestLike) const webhookEvent = await createWebhookEvent(buildWebhookEventInput(requestLike, parsed)) @@ -87,7 +94,7 @@ export async function executeAgisoTradeWebhookWithDeps( parsed, webhookEventId, { requestId = '' } = {}, - deps = {}, + deps: AgisoTradeWebhookDeps = {}, ) { const updateEvent = deps.updateWebhookEvent || updateWebhookEvent const hasConfiguredItems = deps.hasConfiguredOrderItems || hasConfiguredOrderItems @@ -280,7 +287,11 @@ export async function executeAgisoTradeWebhookWithDeps( } } -async function enrichTradeBeforeUpsert(parsed, { requestId = '', webhookEventId = null } = {}, deps = {}) { +async function enrichTradeBeforeUpsert( + parsed, + { requestId = '', webhookEventId = null } = {}, + deps: AgisoTradeWebhookDeps = {}, +) { const enrichOrder = deps.enrichAgisoXianyuTradeOrder || enrichAgisoXianyuTradeOrder if (parsed.provider !== 'agiso' || parsed.platform !== 'xianyu') { diff --git a/docs/backend-typescript-migration-plan.md b/docs/backend-typescript-migration-plan.md index 90f81aa0..ceadafd1 100644 --- a/docs/backend-typescript-migration-plan.md +++ b/docs/backend-typescript-migration-plan.md @@ -373,6 +373,14 @@ - `npm run typecheck` - `npm run build` - `npm test` 共 139 个用例通过 +65. webhook service 迁移到 `.ts`: + - `src/services/order/webhook-service.ts` +66. webhook 编排依赖注入边界已补最小类型,入口编排、解析、验签、忽略、补查、upsert 逻辑已进入 TypeScript 编译链路 +67. Docker 内验证通过: + - `src/services/order/webhook-service.test.js` 共 9 个用例通过 + - `npm run typecheck` + - `npm run build` + - `npm test` 共 139 个用例通过 ## 下一步建议