Fixed signature
parent
daecc1e0e4
commit
b146b80778
|
@ -498,7 +498,9 @@ const calendars = (withCredentials): CalendarApiAdapter[] =>
|
||||||
.filter(Boolean);
|
.filter(Boolean);
|
||||||
|
|
||||||
const getBusyCalendarTimes = (withCredentials, dateFrom, dateTo, selectedCalendars) =>
|
const getBusyCalendarTimes = (withCredentials, dateFrom, dateTo, selectedCalendars) =>
|
||||||
Promise.all(calendars(withCredentials).map((c) => c.getAvailability(selectedCalendars))).then((results) => {
|
Promise.all(
|
||||||
|
calendars(withCredentials).map((c) => c.getAvailability(dateFrom, dateTo, selectedCalendars))
|
||||||
|
).then((results) => {
|
||||||
return results.reduce((acc, availability) => acc.concat(availability), []);
|
return results.reduce((acc, availability) => acc.concat(availability), []);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import prisma from '../../lib/prisma';
|
import prisma from "../../lib/prisma";
|
||||||
import {deleteEvent} from "../../lib/calendarClient";
|
import { deleteEvent } from "../../lib/calendarClient";
|
||||||
import async from 'async';
|
import async from "async";
|
||||||
import {deleteMeeting} from "../../lib/videoClient";
|
import { deleteMeeting } from "../../lib/videoClient";
|
||||||
|
|
||||||
export default async function handler(req, res) {
|
export default async function handler(req, res) {
|
||||||
if (req.method == "POST") {
|
if (req.method == "POST") {
|
||||||
|
@ -15,36 +15,36 @@ export default async function handler(req, res) {
|
||||||
id: true,
|
id: true,
|
||||||
user: {
|
user: {
|
||||||
select: {
|
select: {
|
||||||
credentials: true
|
credentials: true,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
attendees: true,
|
attendees: true,
|
||||||
references: {
|
references: {
|
||||||
select: {
|
select: {
|
||||||
uid: true,
|
uid: true,
|
||||||
type: true
|
type: true,
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const apiDeletes = async.mapLimit(bookingToDelete.user.credentials, 5, async (credential) => {
|
const apiDeletes = async.mapLimit(bookingToDelete.user.credentials, 5, async (credential) => {
|
||||||
const bookingRefUid = bookingToDelete.references.filter((ref) => ref.type === credential.type)[0].uid;
|
const bookingRefUid = bookingToDelete.references.filter((ref) => ref.type === credential.type)[0].uid;
|
||||||
if(credential.type.endsWith("_calendar")) {
|
if (credential.type.endsWith("_calendar")) {
|
||||||
return await deleteEvent(credential, bookingRefUid);
|
return await deleteEvent(credential, bookingRefUid);
|
||||||
} else if(credential.type.endsWith("_video")) {
|
} else if (credential.type.endsWith("_video")) {
|
||||||
return await deleteMeeting(credential, bookingRefUid);
|
return await deleteMeeting(credential, bookingRefUid);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const attendeeDeletes = prisma.attendee.deleteMany({
|
const attendeeDeletes = prisma.attendee.deleteMany({
|
||||||
where: {
|
where: {
|
||||||
bookingId: bookingToDelete.id
|
bookingId: bookingToDelete.id,
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
const bookingReferenceDeletes = prisma.bookingReference.deleteMany({
|
const bookingReferenceDeletes = prisma.bookingReference.deleteMany({
|
||||||
where: {
|
where: {
|
||||||
bookingId: bookingToDelete.id
|
bookingId: bookingToDelete.id,
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
const bookingDeletes = prisma.booking.delete({
|
const bookingDeletes = prisma.booking.delete({
|
||||||
where: {
|
where: {
|
||||||
|
@ -52,17 +52,12 @@ export default async function handler(req, res) {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
await Promise.all([
|
await Promise.all([apiDeletes, attendeeDeletes, bookingReferenceDeletes, bookingDeletes]);
|
||||||
apiDeletes,
|
|
||||||
attendeeDeletes,
|
|
||||||
bookingReferenceDeletes,
|
|
||||||
bookingDeletes
|
|
||||||
]);
|
|
||||||
|
|
||||||
//TODO Perhaps send emails to user and client to tell about the cancellation
|
//TODO Perhaps send emails to user and client to tell about the cancellation
|
||||||
|
|
||||||
res.status(200).json({message: 'Booking successfully deleted.'});
|
res.status(200).json({ message: "Booking successfully deleted." });
|
||||||
} else {
|
} else {
|
||||||
res.status(405).json({message: 'This endpoint only accepts POST requests.'});
|
res.status(405).json({ message: "This endpoint only accepts POST requests." });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue