@microsoft/agents-hosting-teams
Version:
Microsoft 365 Agents SDK for JavaScript
104 lines • 4.18 kB
JavaScript
;
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