// eslint-disable-next-line eslint-comments/disable-enable-pair /* eslint-disable camelcase */ import { LoginProps } from './types' // Clases export * from './AdobeConnect/' export * from './Zoom/' // Types export * from './BaseProvider' /** * Instancia de log de una petición realizada. */ export type Log = { /** * Cabeceras de la petición. */ headers?: Map /** * Código de estado de la petición. */ status?: number /** * Texto de estado de la petición */ statusText?: string /** * Url donde se realizó la petición */ url?: string } /** * Instancia de Meeting del Proveedor CEV. */ export type Meeting = { /** * Nombre reunión * @requires AdobeConnect * @requires Zoom */ name?: string /** * Fecha inicio meeting * @requires AdobeConnect * @requires Zoom */ dateInit?: string /** * Fecha fin meeting * @requires AdobeConnect */ dateEnd?: string /** * Duración de la reunión. * @requires Zoom */ duration?: number /** * Identificador único de la reunión. * @requires AdobeConnect * @emits */ id?: string /** * URL API. * @requires AdobeConnect * @emits */ url?: string /** * Token del Proveedor CEV. * @requires AdobeConnect * @requires Zoom * @emits */ token?: string /** * Identificador del scheduleId. * @requires AdobeConnect * @emits */ scoId?: number /** * Tipo de Meeting. * @requires Zoom */ type?: number /** * Zona horaria. * @requires Zoom */ timezone?: string /** * Contraseña a configurar en la meeting. * @requires Zoom */ password?: string /** * Topic. * @requires Zoom */ topic?: string /** * Agenda. * @requires Zoom */ agenda?: string /** * Agendar para otro usuario * @requires Zoom */ scheduleFor?: string /** * Configuraciones * @requires Zoom */ // eslint-disable-next-line @typescript-eslint/no-explicit-any settings?: any /** * userId. * @requires Zoom */ userId?: string /** * start_url * @requires Zoom */ startUrl?: string /** * Información de la petición para registrar en logs. */ log?: Log } /** * Parametros para actualizar la zona horaria del meeting en zoom */ export type UpdateMeetingTimezone = { /** * Id del Meeting */ meetingId: number /** * Zona horaria del alumno */ timezone: string /** * Token del Proveedor CEV. * @requires AdobeConnect * @requires Zoom * @emits */ token: string } /** * Instancia de Participante a la reunión del Proveedor CEV. */ export type Participant = { /** * Identificador del usuario al proveedor CEV. */ id?: string | number /** * Nombre de usuario al proveedor CEV. */ username?: string /** * Contraseña del usuario al proveedor CEV. */ password?: string /** * Nombre del participante. */ firstName?: string /** * Apellido del participante. */ lastName?: string /** * Login del usuario al proveedor CEV. */ login?: string /** * Identificador del participante en el proveedor CEV. */ principalId?: number /** * Identificador de la cuenta del proveedor CEV. */ accountId?: number /** * Nombre del participante del proveedor CEV. */ name?: string /** * Correo electrónico del participante proveedor CEV. */ email?: string /** * Identificador del permiso del participante. */ permissionId?: 'view' | 'host' | 'mini-host' | 'remove' /** * Identificador del rol del participante en Zoom CEV. */ type?: string /** * Identificador del grupo al que puede pertenecer un participante. */ groupId?: string /** * Información de la petición para registrar en logs */ log?: Log } /** * Constructor del Proveedor CEV. */ export type ProviderConstructor = { url?: string username?: string password?: string /** Email del usuario. */ email?: string /** Zona horaria del usuario. */ timeZone: string /** * Si está seteado el token entonces ocupamos este en vez de hacer un jwt.sign(). * @important Requerido para el proveedor Zoom. */ token: string } /** * Parámetros para participantToMeeting en Proveedor CEV. */ export type ParticipantToMeetingProps = { /** * Rol del participante (host=Anfitrión, mini-host=Presentador, view=Participante, remove=Eliminar participante). * @requires AdobeConnect */ permissionId?: string /** * Identificador del participante. * @requires AdobeConnect */ principalId?: number /** * Identificador de la reunión. * @requires AdobeConnect */ scoId?: number /** * URL. * @requires AdobeConnect */ url?: string /** * Token. * @requires AdobeConnect * @requires Zoom */ token?: string /** * Reunión * @requires Zoom */ meeting?: Meeting /** * Participante * @requires Zoom */ participant?: Participant } /** * Parámetros para goMeeting en Proveedor CEV. */ export type GoMeetingProps = { /** * URL de la Meeting. * @requires AdobeConnect */ scoUrl?: string /** * Datos para loguearse. * @requires AdobeConnect */ loginProps?: LoginProps /** * URL. * @requires Zoom */ url?: string /** * Token. * @requires Zoom */ token?: string /** * meetingId. * @requires Zoom */ meetingId?: number /** * E-Mail. * @requires Zoom */ email?: string /** * Timezone */ timezone?: string } /** * Payload para goMeeting en Proveedor CEV. */ export type GoMeetingPayload = { /** * URL de ingreso a la meeting */ url: string /** * Información de los participantes de la reunión. */ registrants?: any /** * Información de la petición para registrar en logs. */ log?: Log } export type FetchEndpoint = { /** * JSON con body de la petición. */ response?: any /** * Información de la petición para registrar en logs. */ log: Log } /** * Interfaces para editParticipant */ export interface CustomAttribute { key: string name: string value: string } export interface PhoneNumber { code: string country: string label: string number: string } export interface EditParticipantAttributes { userId: string | number cms_user_id?: string company?: string custom_attributes?: CustomAttribute[] dept?: string first_name?: string group_id?: string host_key?: string job_title?: string language?: string last_name?: string location?: string manager?: string phone_country?: string phone_number?: string phone_numbers?: PhoneNumber[] pmi?: number pronouns?: string pronouns_option?: number timezone?: string type?: number use_pmi?: boolean vanity_name?: string zoom_one_type?: number }