Compare commits
5 Commits
main
...
trigger-we
Author | SHA1 | Date | |
---|---|---|---|
|
77b9469080 | ||
|
f0b9140283 | ||
|
e43c3e6c96 | ||
|
47ed7adbea | ||
|
5619672884 |
|
@ -1009,6 +1009,82 @@ async function handler(
|
||||||
return deletedReferences;
|
return deletedReferences;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const eventTrigger: WebhookTriggerEvents = rescheduleUid
|
||||||
|
? WebhookTriggerEvents.BOOKING_RESCHEDULED
|
||||||
|
: WebhookTriggerEvents.BOOKING_CREATED;
|
||||||
|
|
||||||
|
const handleWebhooks = async () => {
|
||||||
|
const subscriberOptions = {
|
||||||
|
userId: organizerUser.id,
|
||||||
|
eventTypeId,
|
||||||
|
triggerEvent: eventTrigger,
|
||||||
|
};
|
||||||
|
|
||||||
|
const subscriberOptionsMeetingEnded = {
|
||||||
|
userId: organizerUser.id,
|
||||||
|
eventTypeId,
|
||||||
|
triggerEvent: WebhookTriggerEvents.MEETING_ENDED,
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
const subscribersMeetingEnded = await getWebhooks(subscriberOptionsMeetingEnded);
|
||||||
|
|
||||||
|
subscribersMeetingEnded.forEach((subscriber) => {
|
||||||
|
if (rescheduleUid && originalRescheduledBooking) {
|
||||||
|
cancelScheduledJobs(originalRescheduledBooking, undefined, true);
|
||||||
|
}
|
||||||
|
if (booking && booking.status === BookingStatus.ACCEPTED) {
|
||||||
|
scheduleTrigger(booking, subscriber.subscriberUrl, subscriber);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
log.error("Error while running scheduledJobs for booking", error);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Send Webhook call if hooked to BOOKING_CREATED & BOOKING_RESCHEDULED
|
||||||
|
const subscribers = await getWebhooks(subscriberOptions);
|
||||||
|
console.log("evt:", {
|
||||||
|
...evt,
|
||||||
|
metadata: reqBody.metadata,
|
||||||
|
});
|
||||||
|
const bookingId = booking?.id;
|
||||||
|
|
||||||
|
const eventTypeInfo: EventTypeInfo = {
|
||||||
|
eventTitle: eventType.title,
|
||||||
|
eventDescription: eventType.description,
|
||||||
|
requiresConfirmation: requiresConfirmation || null,
|
||||||
|
price: paymentAppData.price,
|
||||||
|
currency: eventType.currency,
|
||||||
|
length: eventType.length,
|
||||||
|
};
|
||||||
|
|
||||||
|
const promises = subscribers.map((sub) =>
|
||||||
|
sendPayload(sub.secret, eventTrigger, new Date().toISOString(), sub, {
|
||||||
|
...evt,
|
||||||
|
...eventTypeInfo,
|
||||||
|
bookingId,
|
||||||
|
rescheduleUid,
|
||||||
|
rescheduleStartTime: originalRescheduledBooking?.startTime
|
||||||
|
? dayjs(originalRescheduledBooking?.startTime).utc().format()
|
||||||
|
: undefined,
|
||||||
|
rescheduleEndTime: originalRescheduledBooking?.endTime
|
||||||
|
? dayjs(originalRescheduledBooking?.endTime).utc().format()
|
||||||
|
: undefined,
|
||||||
|
metadata: { ...metadata, ...reqBody.metadata },
|
||||||
|
eventTypeId,
|
||||||
|
status: "ACCEPTED",
|
||||||
|
smsReminderNumber: booking?.smsReminderNumber || undefined,
|
||||||
|
}).catch((e) => {
|
||||||
|
console.error(`Error executing webhook for event: ${eventTrigger}, URL: ${sub.subscriberUrl}`, e);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
await Promise.all(promises);
|
||||||
|
} catch (error) {
|
||||||
|
log.error("Error while sending webhook", error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const handleSeats = async () => {
|
const handleSeats = async () => {
|
||||||
let resultBooking:
|
let resultBooking:
|
||||||
| (Partial<Booking> & {
|
| (Partial<Booking> & {
|
||||||
|
@ -1563,6 +1639,9 @@ async function handler(
|
||||||
log.error("Error while scheduling workflow reminders", error);
|
log.error("Error while scheduling workflow reminders", error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Trigger any webhooks
|
||||||
|
handleWebhooks();
|
||||||
|
|
||||||
return resultBooking;
|
return resultBooking;
|
||||||
};
|
};
|
||||||
// For seats, if the booking already exists then we want to add the new attendee to the existing booking
|
// For seats, if the booking already exists then we want to add the new attendee to the existing booking
|
||||||
|
@ -2090,78 +2169,7 @@ async function handler(
|
||||||
}
|
}
|
||||||
: undefined;
|
: undefined;
|
||||||
if (isConfirmedByDefault) {
|
if (isConfirmedByDefault) {
|
||||||
const eventTrigger: WebhookTriggerEvents = rescheduleUid
|
handleWebhooks();
|
||||||
? WebhookTriggerEvents.BOOKING_RESCHEDULED
|
|
||||||
: WebhookTriggerEvents.BOOKING_CREATED;
|
|
||||||
const subscriberOptions = {
|
|
||||||
userId: organizerUser.id,
|
|
||||||
eventTypeId,
|
|
||||||
triggerEvent: eventTrigger,
|
|
||||||
};
|
|
||||||
|
|
||||||
const subscriberOptionsMeetingEnded = {
|
|
||||||
userId: organizerUser.id,
|
|
||||||
eventTypeId,
|
|
||||||
triggerEvent: WebhookTriggerEvents.MEETING_ENDED,
|
|
||||||
};
|
|
||||||
|
|
||||||
try {
|
|
||||||
const subscribersMeetingEnded = await getWebhooks(subscriberOptionsMeetingEnded);
|
|
||||||
|
|
||||||
subscribersMeetingEnded.forEach((subscriber) => {
|
|
||||||
if (rescheduleUid && originalRescheduledBooking) {
|
|
||||||
cancelScheduledJobs(originalRescheduledBooking, undefined, true);
|
|
||||||
}
|
|
||||||
if (booking && booking.status === BookingStatus.ACCEPTED) {
|
|
||||||
scheduleTrigger(booking, subscriber.subscriberUrl, subscriber);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (error) {
|
|
||||||
log.error("Error while running scheduledJobs for booking", error);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
// Send Webhook call if hooked to BOOKING_CREATED & BOOKING_RESCHEDULED
|
|
||||||
const subscribers = await getWebhooks(subscriberOptions);
|
|
||||||
console.log("evt:", {
|
|
||||||
...evt,
|
|
||||||
metadata: reqBody.metadata,
|
|
||||||
});
|
|
||||||
const bookingId = booking?.id;
|
|
||||||
|
|
||||||
const eventTypeInfo: EventTypeInfo = {
|
|
||||||
eventTitle: eventType.title,
|
|
||||||
eventDescription: eventType.description,
|
|
||||||
requiresConfirmation: requiresConfirmation || null,
|
|
||||||
price: paymentAppData.price,
|
|
||||||
currency: eventType.currency,
|
|
||||||
length: eventType.length,
|
|
||||||
};
|
|
||||||
|
|
||||||
const promises = subscribers.map((sub) =>
|
|
||||||
sendPayload(sub.secret, eventTrigger, new Date().toISOString(), sub, {
|
|
||||||
...evt,
|
|
||||||
...eventTypeInfo,
|
|
||||||
bookingId,
|
|
||||||
rescheduleUid,
|
|
||||||
rescheduleStartTime: originalRescheduledBooking?.startTime
|
|
||||||
? dayjs(originalRescheduledBooking?.startTime).utc().format()
|
|
||||||
: undefined,
|
|
||||||
rescheduleEndTime: originalRescheduledBooking?.endTime
|
|
||||||
? dayjs(originalRescheduledBooking?.endTime).utc().format()
|
|
||||||
: undefined,
|
|
||||||
metadata: { ...metadata, ...reqBody.metadata },
|
|
||||||
eventTypeId,
|
|
||||||
status: "ACCEPTED",
|
|
||||||
smsReminderNumber: booking?.smsReminderNumber || undefined,
|
|
||||||
}).catch((e) => {
|
|
||||||
console.error(`Error executing webhook for event: ${eventTrigger}, URL: ${sub.subscriberUrl}`, e);
|
|
||||||
})
|
|
||||||
);
|
|
||||||
await Promise.all(promises);
|
|
||||||
} catch (error) {
|
|
||||||
log.error("Error while sending webhook", error);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Avoid passing referencesToCreate with id unique constrain values
|
// Avoid passing referencesToCreate with id unique constrain values
|
||||||
|
|
|
@ -264,7 +264,7 @@ const ProfileView = () => {
|
||||||
<>
|
<>
|
||||||
<Label className="text-emphasis mt-5">{t("about")}</Label>
|
<Label className="text-emphasis mt-5">{t("about")}</Label>
|
||||||
<div
|
<div
|
||||||
className=" text-subtle text-sm [&_a]:text-blue-500 [&_a]:underline [&_a]:hover:text-blue-600 break-words"
|
className=" text-subtle break-words text-sm [&_a]:text-blue-500 [&_a]:underline [&_a]:hover:text-blue-600"
|
||||||
dangerouslySetInnerHTML={{ __html: md.render(team.bio || "") }}
|
dangerouslySetInnerHTML={{ __html: md.render(team.bio || "") }}
|
||||||
/>
|
/>
|
||||||
</>
|
</>
|
||||||
|
|
|
@ -135,7 +135,6 @@ export const inviteMemberHandler = async ({ ctx, input }: InviteMemberOptions) =
|
||||||
inviteTeamOptions.isCalcomMember = false;
|
inviteTeamOptions.isCalcomMember = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
await sendTeamInviteEmail({
|
await sendTeamInviteEmail({
|
||||||
language: translation,
|
language: translation,
|
||||||
from: ctx.user.name,
|
from: ctx.user.name,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user