use twilio api key/secret instead of authToken
This commit is contained in:
@ -1,8 +1,8 @@
|
||||
import { Queue } from "quirrel/blitz";
|
||||
import twilio from "twilio";
|
||||
|
||||
import db from "../../../../db";
|
||||
import insertMessagesQueue from "./insert-messages";
|
||||
import getTwilioClient from "../../../../integrations/twilio";
|
||||
|
||||
type Payload = {
|
||||
organizationId: string;
|
||||
@ -19,13 +19,10 @@ const fetchMessagesQueue = Queue<Payload>("api/queue/fetch-messages", async ({ o
|
||||
}
|
||||
|
||||
const organization = phoneNumber.organization;
|
||||
if (!organization.twilioAccountSid || !organization.twilioAuthToken) {
|
||||
return;
|
||||
}
|
||||
|
||||
const twilioClient = getTwilioClient(organization);
|
||||
const [sent, received] = await Promise.all([
|
||||
twilio(organization.twilioAccountSid, organization.twilioAuthToken).messages.list({ from: phoneNumber.number }),
|
||||
twilio(organization.twilioAccountSid, organization.twilioAuthToken).messages.list({ to: phoneNumber.number }),
|
||||
twilioClient.messages.list({ from: phoneNumber.number }),
|
||||
twilioClient.messages.list({ to: phoneNumber.number }),
|
||||
]);
|
||||
const messagesSent = sent.filter((message) => message.direction.startsWith("outbound"));
|
||||
const messagesReceived = received.filter((message) => message.direction === "inbound");
|
||||
|
@ -1,10 +1,10 @@
|
||||
import { Queue } from "quirrel/blitz";
|
||||
import type { MessageInstance } from "twilio/lib/rest/api/v2010/account/message";
|
||||
import twilio from "twilio";
|
||||
|
||||
import db, { Direction, MessageStatus } from "../../../../db";
|
||||
import { encrypt } from "../../../../db/_encryption";
|
||||
import notifyIncomingMessageQueue from "./notify-incoming-message";
|
||||
import getTwilioClient from "../../../../integrations/twilio";
|
||||
|
||||
type Payload = {
|
||||
organizationId: string;
|
||||
@ -18,13 +18,12 @@ const insertIncomingMessageQueue = Queue<Payload>(
|
||||
const organization = await db.organization.findFirst({
|
||||
where: { id: organizationId },
|
||||
});
|
||||
if (!organization || !organization.twilioAccountSid || !organization.twilioAuthToken) {
|
||||
if (!organization) {
|
||||
return;
|
||||
}
|
||||
|
||||
const message = await twilio(organization.twilioAccountSid, organization.twilioAuthToken)
|
||||
.messages.get(messageSid)
|
||||
.fetch();
|
||||
const twilioClient = getTwilioClient(organization);
|
||||
const message = await twilioClient.messages.get(messageSid).fetch();
|
||||
await db.message.create({
|
||||
data: {
|
||||
organizationId,
|
||||
|
@ -1,11 +1,11 @@
|
||||
import { getConfig } from "blitz";
|
||||
import { Queue } from "quirrel/blitz";
|
||||
import type { MessageInstance } from "twilio/lib/rest/api/v2010/account/message";
|
||||
import twilio from "twilio";
|
||||
import webpush, { PushSubscription, WebPushError } from "web-push";
|
||||
|
||||
import db from "../../../../db";
|
||||
import appLogger from "../../../../integrations/logger";
|
||||
import getTwilioClient from "../../../../integrations/twilio";
|
||||
|
||||
const { serverRuntimeConfig, publicRuntimeConfig } = getConfig();
|
||||
const logger = appLogger.child({ queue: "notify-incoming-message" });
|
||||
@ -28,15 +28,12 @@ const notifyIncomingMessageQueue = Queue<Payload>(
|
||||
const organization = await db.organization.findFirst({
|
||||
where: { id: organizationId },
|
||||
});
|
||||
if (!organization || !organization.twilioAccountSid || !organization.twilioAuthToken) {
|
||||
return;
|
||||
}
|
||||
|
||||
const message = await twilio(organization.twilioAccountSid, organization.twilioAuthToken)
|
||||
.messages.get(messageSid)
|
||||
.fetch();
|
||||
const twilioClient = getTwilioClient(organization);
|
||||
const message = await twilioClient.messages.get(messageSid).fetch();
|
||||
const notification = { message: `${message.from} - ${message.body}` };
|
||||
const subscriptions = await db.notificationSubscription.findMany({ where: { organizationId, phoneNumberId } });
|
||||
const subscriptions = await db.notificationSubscription.findMany({
|
||||
where: { organizationId, phoneNumberId },
|
||||
});
|
||||
await Promise.all(
|
||||
subscriptions.map(async (subscription) => {
|
||||
const webPushSubscription: PushSubscription = {
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { Queue } from "quirrel/blitz";
|
||||
import twilio from "twilio";
|
||||
|
||||
import db, { MessageStatus } from "../../../../db";
|
||||
import getTwilioClient from "../../../../integrations/twilio";
|
||||
|
||||
type Payload = {
|
||||
id: string;
|
||||
@ -19,12 +19,13 @@ const sendMessageQueue = Queue<Payload>(
|
||||
include: { phoneNumbers: true },
|
||||
});
|
||||
const phoneNumber = organization?.phoneNumbers.find((phoneNumber) => phoneNumber.id === phoneNumberId);
|
||||
if (!organization || !organization.twilioAccountSid || !organization.twilioAuthToken || !phoneNumber) {
|
||||
if (!organization || !phoneNumber) {
|
||||
return;
|
||||
}
|
||||
|
||||
const twilioClient = getTwilioClient(organization);
|
||||
try {
|
||||
const message = await twilio(organization.twilioAccountSid, organization.twilioAuthToken).messages.create({
|
||||
const message = await twilioClient.messages.create({
|
||||
body: content,
|
||||
to,
|
||||
from: phoneNumber.number,
|
||||
|
@ -6,7 +6,6 @@ import type { ApiError } from "../../../api/_types";
|
||||
import appLogger from "../../../../integrations/logger";
|
||||
import db from "../../../../db";
|
||||
import insertIncomingMessageQueue from "../queue/insert-incoming-message";
|
||||
import notifyIncomingMessageQueue from "../queue/notify-incoming-message";
|
||||
|
||||
const logger = appLogger.child({ route: "/api/webhook/incoming-message" });
|
||||
const { serverRuntimeConfig } = getConfig();
|
||||
|
Reference in New Issue
Block a user