UNPKG

@microsoft/agents-hosting-teams

Version:

Microsoft 365 Agents SDK for JavaScript

104 lines 4.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Meetings = void 0; /** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ const agents_activity_1 = require("@microsoft/agents-activity"); /** * Handles Teams meeting-related events in applications. * Provides methods for registering handlers for meeting start, end, and participant changes. * @template TState Type extending TurnState to be used by the application */ class Meetings { /** * Creates a new Meetings instance. * @param app The TeamsApplication instance to associate with this Meetings instance */ constructor(app) { this._app = app; } /** * Registers a handler for meeting start events. * This event occurs when a Teams meeting begins. * * @param handler Function to handle the meeting start event * @returns The TeamsApplication instance for chaining */ start(handler) { const selector = (context) => { return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.Event && context.activity.channelId === 'msteams' && context.activity.name === 'application/vnd.microsoft.meetingStart'); }; const handlerWrapper = (context, state) => { const meeting = context.activity.value; return handler(context, state, meeting); }; this._app.addRoute(selector, handlerWrapper); return this._app; } /** * Registers a handler for meeting end events. * This event occurs when a Teams meeting ends. * * @param handler Function to handle the meeting end event * @returns The TeamsApplication instance for chaining */ end(handler) { const selector = (context) => { return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.Event && context.activity.channelId === 'msteams' && context.activity.name === 'application/vnd.microsoft.meetingEnd'); }; const handlerWrapper = (context, state) => { const meeting = context.activity.value; return handler(context, state, meeting); }; this._app.addRoute(selector, handlerWrapper); return this._app; } /** * Registers a handler for participant join events. * This event occurs when participants join a Teams meeting. * * @param handler Function to handle the participants join event * @returns The TeamsApplication instance for chaining */ participantsJoin(handler) { const selector = (context) => { return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.Event && context.activity.channelId === 'msteams' && context.activity.name === 'application/vnd.microsoft.meetingParticipantsJoin'); }; const handlerWrapper = (context, state) => { const meeting = context.activity.value; return handler(context, state, meeting); }; this._app.addRoute(selector, handlerWrapper); return this._app; } /** * Registers a handler for participant leave events. * This event occurs when participants leave a Teams meeting. * * @param handler Function to handle the participants leave event * @returns The TeamsApplication instance for chaining */ participantsLeave(handler) { const selector = (context) => { return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.Event && context.activity.channelId === 'msteams' && context.activity.name === 'application/vnd.microsoft.meetingParticipantsLeave'); }; const handlerWrapper = (context, state) => { const meeting = context.activity.value; return handler(context, state, meeting); }; this._app.addRoute(selector, handlerWrapper); return this._app; } } exports.Meetings = Meetings; //# sourceMappingURL=meetings.js.map