import { Queue } from "quirrel/blitz"; import twilio from "twilio"; import db from "../../../db"; type Payload = { id: string; customerId: string; to: string; content: string; }; const sendMessageQueue = Queue( "api/queue/send-message", async ({ id, customerId, to, content }) => { const customer = await db.customer.findFirst({ where: { id: customerId } }); const phoneNumber = await db.phoneNumber.findFirst({ where: { customerId } }); const message = await twilio(customer!.accountSid!, customer!.authToken!).messages.create({ body: content, to, from: phoneNumber!.phoneNumber, }); await db.message.update({ where: { id }, data: { twilioSid: message.sid }, }); }, { retry: ["1min"], } ); export default sendMessageQueue;