link-stack/packages/bridge-ui/lib/facebook.ts

33 lines
974 B
TypeScript
Raw Normal View History

2024-04-30 11:39:16 +02:00
import { NextRequest, NextResponse } from "next/server";
import { Service } from "./service";
import { db, getWorkerUtils } from "bridge-common";
export class Facebook extends Service {
async handleWebhook(req: NextRequest) {
const { searchParams } = req.nextUrl;
const submittedToken = searchParams.get("hub.verify_token");
if (submittedToken) {
await db
.selectFrom("FacebookBot")
.selectAll()
.where("verifyToken", "=", submittedToken)
.executeTakeFirstOrThrow();
if (searchParams.get("hub.mode") === "subscribe") {
const challenge = searchParams.get("hub.challenge");
return NextResponse.json(challenge) as any;
} else {
return NextResponse.error();
}
}
const message = await req.json();
const worker = await getWorkerUtils();
2024-04-30 13:13:49 +02:00
await worker.addJob("facebook/receive-facebook-message", { message });
2024-04-30 11:39:16 +02:00
return NextResponse.json({ response: "ok" });
}
}