import { isConfirmed, isDryRun, normalizeMeetingLocator, pickAuthInput, request } from '../core.ts' /** * Delete a Zoom meeting. * * Pass `dryRun: true` to preview the request. Live deletes require `confirm: true`. * * @example * import deleteZoomMeeting from 'kody:@kody/zoom/meetings/delete' * const preview = await deleteZoomMeeting({ meetingId: '11111111111', dryRun: true }) */ export default async function deleteZoomMeeting(params: Record = {}) { const auth = pickAuthInput(params) const { meetingId, occurrenceId } = normalizeMeetingLocator(params) const scheduleOccurrence = params.schedule_for_reminder === true || params.scheduleForReminder === true if (isDryRun(params)) { return { dryRun: true, wouldDelete: true, meetingId, occurrenceId: occurrenceId ?? null, path: `/meetings/${meetingId}`, auth, } } if (!isConfirmed(params)) { throw new Error( `Deleting meeting ${meetingId} requires dryRun: true (preview) or confirm: true (live write).`, ) } const response = await request({ ...auth, method: 'DELETE', path: `/meetings/${meetingId}`, query: { ...(occurrenceId ? { occurrence_id: occurrenceId } : {}), ...(scheduleOccurrence ? { schedule_for_reminder: true } : {}), }, throwOnError: true, confirm: true, }) return { ok: true, meetingId, status: response.status, auth: response.auth, } }