If no location is set, default to Cal Video (#5812)
* Default to Cal Video * Show web conferencing details to follow on success page * Show web conferencing details to follow on success page * Show web conferencing details to follow on success page * Type fixes * Pass tests Co-authored-by: Alex van Andel <me@alexvanandel.com>
This commit is contained in:
co-authored by
Alex van Andel
parent
056406bdd9
commit
5e88ad50ea
@@ -167,9 +167,11 @@ export default function Success(props: SuccessProps) {
|
||||
if ((isCancellationMode || changes) && typeof window !== "undefined") {
|
||||
window.scrollTo(0, document.body.scrollHeight);
|
||||
}
|
||||
|
||||
const location: ReturnType<typeof getEventLocationValue> = Array.isArray(props.bookingInfo.location)
|
||||
? props.bookingInfo.location[0] || ""
|
||||
: props.bookingInfo.location || "";
|
||||
? props.bookingInfo.location[0]
|
||||
: // If there is no location set then we default to Cal Video
|
||||
"integrations:daily";
|
||||
|
||||
if (!location) {
|
||||
// Can't use logger.error because it throws error on client. stdout isn't available to it.
|
||||
|
||||
@@ -65,6 +65,8 @@ test("add webhook & test that creating an event triggers a webhook call", async
|
||||
body.payload.additionalInformation = dynamic;
|
||||
body.payload.requiresConfirmation = dynamic;
|
||||
body.payload.eventTypeId = dynamic;
|
||||
body.payload.videoCallData = dynamic;
|
||||
body.payload.appsStatus = dynamic;
|
||||
|
||||
// if we change the shape of our webhooks, we can simply update this by clicking `u`
|
||||
// console.log("BODY", body);
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"triggerEvent":"BOOKING_CREATED","createdAt":"[redacted/dynamic]","payload":{"type":"30 min","title":"30 min between PRO and Test Testson","description":"","additionalNotes":"","customInputs":{},"startTime":"[redacted/dynamic]","endTime":"[redacted/dynamic]","organizer":{"name":"PRO","email":"[redacted/dynamic]","timeZone":"[redacted/dynamic]","language":"[redacted/dynamic]"},"attendees":[{"email":"test@example.com","name":"Test Testson","timeZone":"[redacted/dynamic]","language":"[redacted/dynamic]"}],"location":"[redacted/dynamic]","destinationCalendar":null,"hideCalendarNotes":false,"requiresConfirmation":"[redacted/dynamic]","eventTypeId":"[redacted/dynamic]","seatsShowAttendees":false,"uid":"[redacted/dynamic]","eventTitle":"30 min","eventDescription":null,"price":0,"currency":"usd","length":30,"bookingId":"[redacted/dynamic]","metadata":{},"status":"ACCEPTED","additionalInformation":"[redacted/dynamic]"}}
|
||||
{"triggerEvent":"BOOKING_CREATED","createdAt":"[redacted/dynamic]","payload":{"type":"30 min","title":"30 min between PRO and Test Testson","description":"","additionalNotes":"","customInputs":{},"startTime":"[redacted/dynamic]","endTime":"[redacted/dynamic]","organizer":{"name":"PRO","email":"[redacted/dynamic]","timeZone":"[redacted/dynamic]","language":"[redacted/dynamic]"},"attendees":[{"email":"test@example.com","name":"Test Testson","timeZone":"[redacted/dynamic]","language":"[redacted/dynamic]"}],"location":"[redacted/dynamic]","destinationCalendar":null,"hideCalendarNotes":false,"requiresConfirmation":"[redacted/dynamic]","eventTypeId":"[redacted/dynamic]","seatsShowAttendees":false,"uid":"[redacted/dynamic]","videoCallData":"[redacted/dynamic]","appsStatus":"[redacted/dynamic]","eventTitle":"30 min","eventDescription":null,"price":0,"currency":"usd","length":30,"bookingId":"[redacted/dynamic]","metadata":{},"status":"ACCEPTED","additionalInformation":"[redacted/dynamic]"}}
|
||||
@@ -100,6 +100,8 @@ export default class EventManager {
|
||||
*/
|
||||
public async create(event: CalendarEvent): Promise<CreateUpdateResult> {
|
||||
const evt = processLocation(event);
|
||||
// Fallback to cal video if no location is set
|
||||
if (!evt.location) evt["location"] = "integrations:daily";
|
||||
const isDedicated = evt.location ? isDedicatedIntegration(evt.location) : null;
|
||||
|
||||
const results: Array<EventResult<Exclude<Event, AdditionalInformation>>> = [];
|
||||
@@ -107,7 +109,7 @@ export default class EventManager {
|
||||
if (isDedicated) {
|
||||
const result = await this.createVideoEvent(evt);
|
||||
|
||||
if (result.createdEvent) {
|
||||
if (result?.createdEvent) {
|
||||
evt.videoCallData = result.createdEvent;
|
||||
evt.location = result.originalEvent.location;
|
||||
result.type = result.createdEvent.type;
|
||||
|
||||
@@ -47,6 +47,14 @@ const createMeeting = async (credential: CredentialWithAppName, calEvent: Calend
|
||||
const [firstVideoAdapter] = videoAdapters;
|
||||
let createdMeeting;
|
||||
try {
|
||||
if (!calEvent.location) {
|
||||
const defaultMeeting = await createMeetingWithCalVideo(calEvent);
|
||||
if (defaultMeeting) {
|
||||
createdMeeting = defaultMeeting;
|
||||
calEvent.location = "integrations:dailyvideo";
|
||||
}
|
||||
}
|
||||
|
||||
createdMeeting = await firstVideoAdapter?.createMeeting(calEvent);
|
||||
|
||||
if (!createdMeeting) {
|
||||
|
||||
Reference in New Issue
Block a user