UNPKG

@microsoft/teams.apps

Version:

<p> <a href="https://www.npmjs.com/package/@microsoft/teams.apps" target="_blank"> <img src="https://img.shields.io/npm/v/@microsoft/teams.apps/latest" /> </a> <a href="https://www.npmjs.com/package/@microsoft/teams.apps?activeTab=code

67 lines • 4.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FunctionContext = void 0; const teams_api_1 = require("@microsoft/teams.api"); const function_context_1 = require("../utils/function-context"); /** * Context handed to a remotely-callable function (`app.function`). * * Like {@link ActivityContext}, this is a "smart" context: it owns conversation * resolution and sending rather than having `App` wire those up at registration. * That keeps `App.function` thin and mirrors the Python SDK's `FunctionContext`. */ class FunctionContext { appId; appSessionId; tenantId; userId; userName; teamId; messageId; channelId; chatId; meetingId; pageId; subPageId; authToken; api; appGraph; log; data; getCurrentConversationId; activitySender; botId; constructor(options) { const { activitySender, botId, ...rest } = options; Object.assign(this, rest); this.activitySender = activitySender; this.botId = botId; // Cache a single resolver so repeated `getCurrentConversationId`/`send` // calls reuse the resolved (and member-validated) conversation id. this.getCurrentConversationId = (0, function_context_1.getConversationIdResolver)(this.api, this.log.child('getCurrentConversationId'), this); } async send(activity) { const conversationId = await this.getCurrentConversationId(); if (!conversationId) { return null; } if (!this.botId) { throw new Error('App has no credentials set up'); } const params = (0, teams_api_1.toActivityParams)(activity); const ref = { channelId: 'msteams', serviceUrl: this.api.serviceUrl, bot: { id: this.botId, role: 'bot', }, conversation: { id: conversationId, }, }; return await this.activitySender.send(params, ref); } } exports.FunctionContext = FunctionContext; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udGV4dHMvZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0RBTThCO0FBSzlCLGdFQUFzRTtBQThEdEU7Ozs7OztHQU1HO0FBQ0gsTUFBYSxlQUFlO0lBQzFCLEtBQUssQ0FBVTtJQUNmLFlBQVksQ0FBVTtJQUN0QixRQUFRLENBQVU7SUFDbEIsTUFBTSxDQUFVO0lBQ2hCLFFBQVEsQ0FBVTtJQUNsQixNQUFNLENBQVU7SUFDaEIsU0FBUyxDQUFVO0lBQ25CLFNBQVMsQ0FBVTtJQUNuQixNQUFNLENBQVU7SUFDaEIsU0FBUyxDQUFVO0lBQ25CLE1BQU0sQ0FBVTtJQUNoQixTQUFTLENBQVU7SUFDbkIsU0FBUyxDQUFVO0lBRW5CLEdBQUcsQ0FBYTtJQUNoQixRQUFRLENBQWU7SUFDdkIsR0FBRyxDQUFXO0lBQ2QsSUFBSSxDQUFLO0lBRUEsd0JBQXdCLENBQW9DO0lBRXBELGNBQWMsQ0FBa0I7SUFDaEMsS0FBSyxDQUFVO0lBRWhDLFlBQVksT0FBbUM7UUFDN0MsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDbkQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsd0VBQXdFO1FBQ3hFLG1FQUFtRTtRQUNuRSxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBQSw0Q0FBeUIsRUFDdkQsSUFBSSxDQUFDLEdBQUcsRUFDUixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxFQUMxQyxJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFhRCxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQWdEO1FBQ3pELE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFN0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFBLDRCQUFnQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sR0FBRyxHQUEwQjtZQUNqQyxTQUFTLEVBQUUsU0FBUztZQUNwQixVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVO1lBQy9CLEdBQUcsRUFBRTtnQkFDSCxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2QsSUFBSSxFQUFFLEtBQUs7YUFDWjtZQUNELFlBQVksRUFBRTtnQkFDWixFQUFFLEVBQUUsY0FBYzthQUNzQjtTQUMzQyxDQUFDO1FBRUYsT0FBTyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUE3RUQsMENBNkVDIn0=