77 lines
1.9 KiB
TypeScript
77 lines
1.9 KiB
TypeScript
import { Router } from "express";
|
|
|
|
import {
|
|
getAdminWebhookEventDetail,
|
|
getAdminWebhookEvents,
|
|
} from "../../services/admin/admin-read-service.js";
|
|
import { createHttpError } from "../../utils/http.js";
|
|
import { createJsonHandler, requireAdminRoles } from "./shared.js";
|
|
import type {
|
|
AdminWebhookEventRouteParams,
|
|
AdminWebhookEventRouteQuery,
|
|
} from "../../types/admin-route-inputs.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(
|
|
() => {
|
|
throw createHttpError("快手轻量后端不支持重放旧 Webhook", {
|
|
statusCode: 409,
|
|
errorCode: "admin_webhook_replay_disabled",
|
|
});
|
|
},
|
|
{
|
|
successMessage: "Webhook 已重放",
|
|
errorMessage: "重放 webhook 失败",
|
|
scope: "[admin-kuaishou/webhook-events/:eventId/replay]",
|
|
audit: (req, data) => {
|
|
return {
|
|
action: "webhook_replayed",
|
|
targetType: "webhook_event",
|
|
targetId: String(
|
|
(req.params as AdminWebhookEventRouteParams).eventId
|
|
),
|
|
data: {
|
|
disabled: true,
|
|
result: data,
|
|
},
|
|
};
|
|
},
|
|
}
|
|
)
|
|
);
|
|
|
|
export default router;
|