import { normalizeUserLocator, pickAuthInput, request } from '../core.ts' import { asRecord, pageMeta, pickQuery, slimRecordingMeeting } from '../shape.ts' const QUERY_KEYS = [ 'from', 'to', 'page_size', 'next_page_token', 'mc', 'trash', 'trash_type', 'meeting_id', ] as const /** * List cloud recordings for a Zoom user. Defaults to `userId: "me"`. * * Pass `from` / `to` as `yyyy-MM-dd` when you need a date window. * * @example * import listZoomRecordings from 'kody:@kody/zoom/recordings/list' * const result = await listZoomRecordings({ from: '2030-01-01', to: '2030-01-31' }) */ export default async function listZoomRecordings(params: Record = {}) { const auth = pickAuthInput(params) const { userId } = normalizeUserLocator(params) const query = pickQuery(params, QUERY_KEYS) const response = await request>({ ...auth, path: `/users/${userId}/recordings`, query, throwOnError: true, }) const data = asRecord(response.data) const items = Array.isArray(data.meetings) ? data.meetings.map((item) => slimRecordingMeeting(asRecord(item))) : [] return { items, userId, from: typeof data.from === 'string' ? data.from : null, to: typeof data.to === 'string' ? data.to : null, ...pageMeta(data), auth: response.auth, } }