Refactoring 3
This commit is contained in:
parent
e4b78ceec2
commit
d1fb9b4d06
20 changed files with 201 additions and 123 deletions
|
|
@ -1,64 +1,34 @@
|
|||
interface SendFacebookMessageTaskOptions {}
|
||||
import { db } from "bridge-common";
|
||||
|
||||
interface SendFacebookMessageTaskOptions {
|
||||
token: string;
|
||||
message: any;
|
||||
}
|
||||
|
||||
const sendFacebookMessageTask = async (
|
||||
options: SendFacebookMessageTaskOptions,
|
||||
): Promise<void> => {
|
||||
console.log(options);
|
||||
|
||||
|
||||
const message = await req.json();
|
||||
|
||||
const message = await req.json();
|
||||
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)
|
||||
.executeTakeFirst();
|
||||
|
||||
console.log({ message });
|
||||
const entry = message.entry[0];
|
||||
console.log({ entry });
|
||||
const messaging = entry?.messaging[0];
|
||||
const pageId = messaging?.recipient?.id;
|
||||
console.log({ pageId });
|
||||
const row = await db
|
||||
const { token, message } = options;
|
||||
const { pageId, pageAccessToken } = await db
|
||||
.selectFrom("FacebookBot")
|
||||
.selectAll()
|
||||
.where("pageId", "=", pageId)
|
||||
.executeTakeFirst();
|
||||
|
||||
console.log({ row });
|
||||
.where("token", "=", token)
|
||||
.executeTakeFirstOrThrow();
|
||||
|
||||
const endpoint = `https://graph.facebook.com/v19.0/${pageId}/messages`;
|
||||
const inMessage = messaging?.message?.text;
|
||||
|
||||
const outgoingMessage = {
|
||||
recipient: { id: messaging?.sender?.id },
|
||||
message: { text: `"${inMessage}", right back at you!` },
|
||||
recipient: { id: message.recipient },
|
||||
message: { text: `"${message.text}", right back at you!` },
|
||||
messaging_type: "RESPONSE",
|
||||
access_token: row?.pageAccessToken,
|
||||
access_token: pageAccessToken,
|
||||
};
|
||||
console.log({ outgoingMessage });
|
||||
const response = await fetch(endpoint, {
|
||||
|
||||
await fetch(endpoint, {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify(outgoingMessage),
|
||||
});
|
||||
|
||||
console.log({ response });
|
||||
|
||||
console.log(message);
|
||||
const wu = await getWorkerUtils();
|
||||
|
||||
await wu.addJob("receive_facebook_message", message);
|
||||
|
||||
return NextResponse.json({ response: "ok" });
|
||||
|
||||
// withDb(async (db: AppDatabase) => {
|
||||
// await notifyWebhooks(db, options);
|
||||
// });
|
||||
};
|
||||
|
||||
export default sendFacebookMessageTask;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue