import { normalizeUserLocator, pickAuthInput, request } from '../core.ts' import { asRecord, pageMeta, pickQuery, slimWebinar } from '../shape.ts' const QUERY_KEYS = ['type', 'page_size', 'page_number', 'next_page_token'] as const /** * List webinars for a Zoom user. Defaults to `userId: "me"`. * * @example * import listZoomWebinars from 'kody:@kody/zoom/webinars/list' * const result = await listZoomWebinars({ page_size: 30 }) */ export default async function listZoomWebinars(params: Record = {}) { const auth = pickAuthInput(params) const { userId } = normalizeUserLocator(params) const query = pickQuery(params, QUERY_KEYS) const response = await request>({ ...auth, path: `/users/${userId}/webinars`, query, throwOnError: true, }) const data = asRecord(response.data) const items = Array.isArray(data.webinars) ? data.webinars.map((item) => slimWebinar(asRecord(item))) : [] return { items, userId, ...pageMeta(data), auth: response.auth, } }