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

54 lines 4.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getConversationIdResolver = getConversationIdResolver; function getConversationIdResolver(app, log, context) { let state; const { userId, userName, tenantId } = context; const conversationId = context.chatId ?? context.channelId; return async () => { if (state) { // This conversation has already been resolved. return state.id; } if (!conversationId) { // Conversation ID can be missing if the app is running in a personal scope. In this case, create // a conversation between the bot and the user. This will either create a new conversation or return // a pre-existing one. try { const conversation = await app.api.conversations.create({ bot: { id: app.id }, members: [{ id: userId, role: 'user', name: userName }], tenantId: tenantId, isGroup: false, }); state = { id: conversation.id }; } catch { state = { id: undefined }; log.error('failed to create conversation with user', { userId, }); } } else { // Validate that the bot and user are both members of the conversation. try { const member = await app.api.conversations .members(conversationId) .getById(userId); state = { id: !member ? undefined : conversationId }; } catch { state = { id: undefined }; } if (!state.id) { log.warn('either the bot or the user are not in this conversation', { conversationId, userId, }); } } return state.id; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9mdW5jdGlvbi1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsOERBMERDO0FBMURELFNBQWdCLHlCQUF5QixDQUN2QyxHQUFpQixFQUNqQixHQUFZLEVBQ1osT0FHQztJQUVELElBQUksS0FBa0MsQ0FBQztJQUV2QyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDL0MsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDO0lBRTNELE9BQU8sS0FBSyxJQUFJLEVBQUU7UUFDaEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLCtDQUErQztZQUMvQyxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEIsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixpR0FBaUc7WUFDakcsb0dBQW9HO1lBQ3BHLHNCQUFzQjtZQUN0QixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxZQUFZLEdBQUcsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7b0JBQ3RELEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO29CQUNuQixPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7b0JBQ3ZELFFBQVEsRUFBRSxRQUFRO29CQUNsQixPQUFPLEVBQUUsS0FBSztpQkFDZixDQUFDLENBQUM7Z0JBQ0gsS0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNsQyxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQztnQkFDMUIsR0FBRyxDQUFDLEtBQUssQ0FBQyx5Q0FBeUMsRUFBRTtvQkFDbkQsTUFBTTtpQkFDUCxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTix1RUFBdUU7WUFDdkUsSUFBSSxDQUFDO2dCQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhO3FCQUN2QyxPQUFPLENBQUMsY0FBYyxDQUFDO3FCQUN2QixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25CLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2RCxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDZCxHQUFHLENBQUMsSUFBSSxDQUFDLHlEQUF5RCxFQUFFO29CQUNsRSxjQUFjO29CQUNkLE1BQU07aUJBQ1AsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9