From f01058e073c367558d3c5bc44030626db09c0eba Mon Sep 17 00:00:00 2001 From: alannnc Date: Tue, 4 Oct 2022 21:46:17 +0200 Subject: [PATCH] fix/error-while-confirm-booking (#4834) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add try/catch on workflows while confirming a booking * Revert "added ?tabName=setup to event-type detail link to give it active status (#4830)" This reverts commit 11c44db6098de55c0654f5a64f162ddb89a1e6d2. Co-authored-by: Omar López --- .../components/booking/BookingListItem.tsx | 5 ++ apps/web/pages/v2/event-types/index.tsx | 2 +- apps/web/public/static/locales/en/common.json | 4 +- .../trpc/server/routers/viewer/bookings.tsx | 59 +++++++++++-------- 4 files changed, 44 insertions(+), 26 deletions(-) diff --git a/apps/web/components/booking/BookingListItem.tsx b/apps/web/components/booking/BookingListItem.tsx index c1d6202ee1..0680e8c1f2 100644 --- a/apps/web/components/booking/BookingListItem.tsx +++ b/apps/web/components/booking/BookingListItem.tsx @@ -44,6 +44,11 @@ function BookingListItem(booking: BookingItemProps) { const mutation = trpc.useMutation(["viewer.bookings.confirm"], { onSuccess: () => { setRejectionDialogIsOpen(false); + showToast(t("booking_confirmation_success"), "success"); + utils.invalidateQueries("viewer.bookings"); + }, + onError: () => { + showToast(t("booking_confirmation_failed"), "error"); utils.invalidateQueries("viewer.bookings"); }, }); diff --git a/apps/web/pages/v2/event-types/index.tsx b/apps/web/pages/v2/event-types/index.tsx index 979c14e60b..8432c4feeb 100644 --- a/apps/web/pages/v2/event-types/index.tsx +++ b/apps/web/pages/v2/event-types/index.tsx @@ -52,7 +52,7 @@ const Item = ({ type, group, readOnly }: { type: EventType; group: EventTypeGrou const { t } = useLocale(); return ( - + diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json index cfdfdc7295..8b41315736 100644 --- a/apps/web/public/static/locales/en/common.json +++ b/apps/web/public/static/locales/en/common.json @@ -1275,5 +1275,7 @@ "ignore_special_characters": "Ignore special characters in your Additional Input label. Use only letters and numbers", "retry": "Retry", "fetching_calendars_error": "There was a problem fetching your calendars. Please <1>try again or reach out to customer support.", - "calendar_connection_fail": "Calendar connection failed" + "calendar_connection_fail": "Calendar connection failed", + "booking_confirmation_success": "Booking confirmation succeeded", + "booking_confirmation_fail": "Booking confirmation failed" } diff --git a/packages/trpc/server/routers/viewer/bookings.tsx b/packages/trpc/server/routers/viewer/bookings.tsx index 0bcff0ec01..1742443f64 100644 --- a/packages/trpc/server/routers/viewer/bookings.tsx +++ b/packages/trpc/server/routers/viewer/bookings.tsx @@ -461,37 +461,48 @@ export const bookingsRouter = createProtectedRouter() } //Workflows - set reminders for confirmed events - for (const updatedBooking of updatedBookings) { - if (updatedBooking.eventType?.workflows) { - const evtOfBooking = evt; - evtOfBooking.startTime = updatedBooking.startTime.toISOString(); - evtOfBooking.endTime = updatedBooking.endTime.toISOString(); - evtOfBooking.uid = updatedBooking.uid; - await scheduleWorkflowReminders( - updatedBooking.eventType.workflows, - updatedBooking.smsReminderNumber, - evtOfBooking, - false, - false - ); + try { + for (const updatedBooking of updatedBookings) { + if (updatedBooking.eventType?.workflows) { + const evtOfBooking = evt; + evtOfBooking.startTime = updatedBooking.startTime.toISOString(); + evtOfBooking.endTime = updatedBooking.endTime.toISOString(); + evtOfBooking.uid = updatedBooking.uid; + + await scheduleWorkflowReminders( + updatedBooking.eventType.workflows, + updatedBooking.smsReminderNumber, + evtOfBooking, + false, + false + ); + } } + } catch (error) { + // Silently fail + console.error(error); } - // schedule job for zapier trigger 'when meeting ends' - const subscriberOptionsMeetingEnded = { - userId: booking.userId || 0, - eventTypeId: booking.eventTypeId || 0, - triggerEvent: WebhookTriggerEvents.MEETING_ENDED, - }; + try { + // schedule job for zapier trigger 'when meeting ends' + const subscriberOptionsMeetingEnded = { + userId: booking.userId || 0, + eventTypeId: booking.eventTypeId || 0, + triggerEvent: WebhookTriggerEvents.MEETING_ENDED, + }; - const subscribersMeetingEnded = await getWebhooks(subscriberOptionsMeetingEnded); + const subscribersMeetingEnded = await getWebhooks(subscriberOptionsMeetingEnded); - subscribersMeetingEnded.forEach((subscriber) => { - updatedBookings.forEach((booking) => { - scheduleTrigger(booking, subscriber.subscriberUrl, subscriber); + subscribersMeetingEnded.forEach((subscriber) => { + updatedBookings.forEach((booking) => { + scheduleTrigger(booking, subscriber.subscriberUrl, subscriber); + }); }); - }); + } catch (error) { + // Silently fail + console.error(error); + } } else { evt.rejectionReason = rejectionReason; if (recurringEventId) {