Fixed signature

pull/375/head
nicolas 2021-07-15 23:34:55 +02:00
parent daecc1e0e4
commit b146b80778
2 changed files with 23 additions and 26 deletions

View File

@ -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), []);
}); });

View File

@ -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." });
} }
} }