From 2ddc5317b8e47ce25ab525153b8491524f06ecd0 Mon Sep 17 00:00:00 2001 From: Alex van Andel Date: Fri, 2 May 2025 03:23:42 +0100 Subject: [PATCH] fix: disabled sms hanging, by calling resolve() (#21070) --- packages/sms/sms-manager.ts | 55 ++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/packages/sms/sms-manager.ts b/packages/sms/sms-manager.ts index 7dcc6642ed..66d6bec85a 100644 --- a/packages/sms/sms-manager.ts +++ b/packages/sms/sms-manager.ts @@ -8,7 +8,7 @@ import { TimeFormat } from "@calcom/lib/timeFormat"; import prisma from "@calcom/prisma"; import type { CalendarEvent, Person } from "@calcom/types/Calendar"; -const handleSendingSMS = ({ +const handleSendingSMS = async ({ reminderPhone, smsMessage, senderID, @@ -19,39 +19,38 @@ const handleSendingSMS = ({ senderID: string; teamId: number; }) => { - return new Promise(async (resolve, reject) => { - try { - const team = await prisma.team.findUnique({ - where: { - id: teamId, - }, + const team = await prisma.team.findUnique({ + where: { id: teamId }, + select: { + parent: { select: { - parent: { + isOrganization: true, + organizationSettings: { select: { - isOrganization: true, - organizationSettings: { - select: { - disablePhoneOnlySMSNotifications: true, - }, - }, + disablePhoneOnlySMSNotifications: true, }, }, }, - }); - - if ( - !team?.parent?.isOrganization || - team?.parent?.organizationSettings?.disablePhoneOnlySMSNotifications - ) - return; - - await checkSMSRateLimit({ identifier: `handleSendingSMS:team:${teamId}`, rateLimitingType: "sms" }); - const sms = twilio.sendSMS(reminderPhone, smsMessage, senderID, teamId); - resolve(sms); - } catch (e) { - reject(console.error(`twilio.sendSMS failed`, e)); - } + }, + }, }); + + if (!team?.parent?.isOrganization || team?.parent?.organizationSettings?.disablePhoneOnlySMSNotifications) { + return; // resolves implicitly (as undefined) + } + + try { + await checkSMSRateLimit({ + identifier: `handleSendingSMS:team:${teamId}`, + rateLimitingType: "sms", + }); + + const sms = await twilio.sendSMS(reminderPhone, smsMessage, senderID, teamId); + return sms; + } catch (e) { + console.error("twilio.sendSMS failed", e); + throw e; // propagate the error + } }; export default abstract class SMSManager {