/
webhook.ts
35 lines (32 loc) · 1.11 KB
/
webhook.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import type { VercelRequest, VercelResponse } from "@vercel/node";
import { createRouter, RoutingError } from "..";
const route = createRouter({
post_create: ({ event }) => console.log("投稿が作成されました。", event),
post_update: ({ event }) => console.log("投稿が更新されました。", event),
post_archive: ({ event }) =>
console.log("投稿がアーカイブされました。", event),
post_delete: ({ event }) => console.log("投稿が削除されました。", event),
post_restore: ({ event }) => console.log("投稿が復旧されました。", event),
});
const handler = async (
req: VercelRequest,
res: VercelResponse,
): Promise<VercelResponse> => {
try {
await route(req);
} catch (error) {
if (error instanceof RoutingError) {
console.error(error.message);
return res.status(error.httpStatus).json({
ok: false,
type: error.type,
category: error.category,
message: error.message,
});
}
console.error(error);
return res.status(500);
}
return res.status(200).json({ ok: true });
};
export default handler;