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(); await worker.addJob("receive_facebook_message", message); return NextResponse.json({ response: "ok" }); } }