link-stack/apps/bridge-worker/tasks/facebook/receive-facebook-message.ts
2024-06-05 08:52:41 +02:00

31 lines
851 B
TypeScript

import { db, getWorkerUtils } from "@link-stack/bridge-common";
interface ReceiveFacebookMessageTaskOptions {
message: any;
}
const receiveFacebookMessageTask = async ({
message,
}: ReceiveFacebookMessageTaskOptions): Promise<void> => {
const worker = await getWorkerUtils();
for (const entry of message.entry) {
for (const messaging of entry.messaging) {
const pageId = messaging.recipient.id;
const row = await db
.selectFrom("FacebookBot")
.selectAll()
.where("pageId", "=", pageId)
.executeTakeFirstOrThrow();
const backendId = row.id;
const payload = {
text: messaging.message.text,
recipient: messaging.sender.id,
};
await worker.addJob("common/notify-webhooks", { backendId, payload });
}
}
};
export default receiveFacebookMessageTask;