@rigby-software-house/medusa-plugin-webhook
v0.1.1
Published
Medusa webhook plugin
Maintainers
Readme
Medusa Webhook Plugin
Usage with Next.js
// app/api/webhook/route.ts
import { revalidateTag } from "next/cache";
import { type NextRequest, NextResponse } from "next/server";
import { verifyWebhook } from "@rigby-software-house/medusa-webhook";
export async function POST(req: NextRequest) {
try {
const secret = process.env.MEDUSA_WEBHOOK_SECRET;
if (!secret) {
return new Response(
"Missing environment variable MEDUSA_WEBHOOK_SECRET",
{ status: 500 }
);
}
const { isValidSignature, tags } = await verifyWebhook(req, secret);
if (!isValidSignature) {
const message = "Invalid signature";
return new Response(JSON.stringify({ message }), {
status: 401,
});
} else if (!Array.isArray(tags) || !tags.length) {
const message = "Bad Request";
return new Response(JSON.stringify({ message, tags }), { status: 400 });
}
tags.forEach((tag) => {
revalidateTag(tag);
});
return NextResponse.json({ tags });
} catch (err) {
console.error(err);
return new Response((err as Error).message, { status: 500 });
}
}