This commit is contained in:
m5r
2021-08-01 22:03:49 +08:00
parent 7d34fcd48f
commit 1489f97c14
33 changed files with 147 additions and 313 deletions

View File

@ -19,9 +19,7 @@ const insertIncomingMessageQueue = Queue<Payload>(
}
const encryptionKey = customer.encryptionKey;
const message = await twilio(customer.accountSid, customer.authToken)
.messages.get(messageSid)
.fetch();
const message = await twilio(customer.accountSid, customer.authToken).messages.get(messageSid).fetch();
await db.message.create({
data: {
customerId,

View File

@ -9,28 +9,25 @@ type Payload = {
messages: MessageInstance[];
};
const insertMessagesQueue = Queue<Payload>(
"api/queue/insert-messages",
async ({ messages, customerId }) => {
const customer = await db.customer.findFirst({ where: { id: customerId } });
const encryptionKey = customer!.encryptionKey;
const insertMessagesQueue = Queue<Payload>("api/queue/insert-messages", async ({ messages, customerId }) => {
const customer = await db.customer.findFirst({ where: { id: customerId } });
const encryptionKey = customer!.encryptionKey;
const sms = messages
.map<Omit<Message, "id">>((message) => ({
customerId,
content: encrypt(message.body, encryptionKey),
from: message.from,
to: message.to,
status: translateStatus(message.status),
direction: translateDirection(message.direction),
twilioSid: message.sid,
sentAt: new Date(message.dateCreated),
}))
.sort((a, b) => a.sentAt.getTime() - b.sentAt.getTime());
const sms = messages
.map<Omit<Message, "id">>((message) => ({
customerId,
content: encrypt(message.body, encryptionKey),
from: message.from,
to: message.to,
status: translateStatus(message.status),
direction: translateDirection(message.direction),
twilioSid: message.sid,
sentAt: new Date(message.dateCreated),
}))
.sort((a, b) => a.sentAt.getTime() - b.sentAt.getTime());
await db.message.createMany({ data: sms });
},
);
await db.message.createMany({ data: sms });
});
export default insertMessagesQueue;

View File

@ -17,10 +17,7 @@ const sendMessageQueue = Queue<Payload>(
const phoneNumber = await db.phoneNumber.findFirst({ where: { customerId } });
try {
const message = await twilio(
customer!.accountSid!,
customer!.authToken!,
).messages.create({
const message = await twilio(customer!.accountSid!, customer!.authToken!).messages.create({
body: content,
to,
from: phoneNumber!.phoneNumber,

View File

@ -57,12 +57,7 @@ export default async function incomingMessageHandler(req: BlitzApiRequest, res:
}
const url = `https://${serverRuntimeConfig.app.baseUrl}/api/webhook/incoming-message`;
const isRequestValid = twilio.validateRequest(
customer.authToken,
twilioSignature,
url,
req.body,
);
const isRequestValid = twilio.validateRequest(customer.authToken, twilioSignature, url, req.body);
if (!isRequestValid) {
const statusCode = 400;
const apiError: ApiError = {