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

50 lines • 3.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getConversationIdResolver = getConversationIdResolver; function getConversationIdResolver(api, 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 api.conversations.create({ members: [{ id: userId, role: 'user', name: userName }], tenantId: tenantId, }); 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 api.conversations.getMemberById(conversationId, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9mdW5jdGlvbi1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0EsOERBc0RDO0FBdERELFNBQWdCLHlCQUF5QixDQUN2QyxHQUFjLEVBQ2QsR0FBWSxFQUNaLE9BR0M7SUFFRCxJQUFJLEtBQWtDLENBQUM7SUFFdkMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQy9DLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUUzRCxPQUFPLEtBQUssSUFBSSxFQUFFO1FBQ2hCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDViwrQ0FBK0M7WUFDL0MsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xCLENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsaUdBQWlHO1lBQ2pHLG9HQUFvRztZQUNwRyxzQkFBc0I7WUFDdEIsSUFBSSxDQUFDO2dCQUNILE1BQU0sWUFBWSxHQUFHLE1BQU0sR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7b0JBQ2xELE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztvQkFDdkQsUUFBUSxFQUFFLFFBQVE7aUJBQ25CLENBQUMsQ0FBQztnQkFDSCxLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsS0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDO2dCQUMxQixHQUFHLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxFQUFFO29CQUNuRCxNQUFNO2lCQUNQLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLHVFQUF1RTtZQUN2RSxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxHQUFHLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzdFLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2RCxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDZCxHQUFHLENBQUMsSUFBSSxDQUFDLHlEQUF5RCxFQUFFO29CQUNsRSxjQUFjO29CQUNkLE1BQU07aUJBQ1AsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9