31 lines
851 B
TypeScript
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;
|