78 lines
2.0 KiB
TypeScript
78 lines
2.0 KiB
TypeScript
import { Router } from "express";
|
|
|
|
import { replayAdminWebhookEvent } from "../../services/admin/write/webhook-events.js";
|
|
import {
|
|
getAdminWebhookEventDetail,
|
|
getAdminWebhookEvents,
|
|
} from "../../services/admin/admin-read-service.js";
|
|
import { createJsonHandler, requireAdminRoles } from "./shared.js";
|
|
import type {
|
|
AdminWebhookEventRouteParams,
|
|
AdminWebhookEventRouteQuery,
|
|
} from "../../types/admin-route-inputs.js";
|
|
import type { AdminWebhookReplayResponse } from "../../types/admin-write-models.js";
|
|
|
|
const router = Router();
|
|
|
|
router.use("/webhook-events", requireAdminRoles(["admin", "operator"]));
|
|
|
|
router.get(
|
|
"/webhook-events",
|
|
createJsonHandler(
|
|
(req) => getAdminWebhookEvents(req.query as AdminWebhookEventRouteQuery),
|
|
{
|
|
successMessage: "ok",
|
|
errorMessage: "读取 webhook 列表失败",
|
|
scope: "[admin-kuaishou/webhook-events]",
|
|
}
|
|
)
|
|
);
|
|
|
|
router.get(
|
|
"/webhook-events/:eventId",
|
|
createJsonHandler(
|
|
(req) =>
|
|
getAdminWebhookEventDetail(
|
|
(req.params as AdminWebhookEventRouteParams).eventId
|
|
),
|
|
{
|
|
successMessage: "ok",
|
|
errorMessage: "读取 webhook 详情失败",
|
|
scope: "[admin-kuaishou/webhook-events/:eventId]",
|
|
}
|
|
)
|
|
);
|
|
|
|
router.post(
|
|
"/webhook-events/:eventId/replay",
|
|
requireAdminRoles(["admin"]),
|
|
createJsonHandler(
|
|
(req) =>
|
|
replayAdminWebhookEvent(
|
|
(req.params as AdminWebhookEventRouteParams).eventId
|
|
),
|
|
{
|
|
successMessage: "Webhook 已重放",
|
|
errorMessage: "重放 webhook 失败",
|
|
scope: "[admin-kuaishou/webhook-events/:eventId/replay]",
|
|
audit: (req, data) => {
|
|
const result = data as AdminWebhookReplayResponse;
|
|
|
|
return {
|
|
action: "webhook_replayed",
|
|
targetType: "webhook_event",
|
|
targetId: String(
|
|
(req.params as AdminWebhookEventRouteParams).eventId
|
|
),
|
|
data: {
|
|
eventId: result.eventId,
|
|
replayed: result.replayed,
|
|
},
|
|
};
|
|
},
|
|
}
|
|
)
|
|
);
|
|
|
|
export default router;
|