UNPKG

@microsoft/teams.api

Version:

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

165 lines (163 loc) • 6.02 kB
import qs from 'qs'; import { Client } from '@microsoft/teams.common'; import { mergeApiClientSettings } from '../api-client-settings.mjs'; import { ensureApiOutboundTelemetryMiddleware } from '../api-outbound-middleware.mjs'; import { ReactionClient } from '../reaction/index.mjs'; import { normalizeServiceUrl } from '../service-url.mjs'; import { ConversationActivityClient } from './activity.mjs'; export * from './activity.mjs'; import { ConversationMemberClient } from './member.mjs'; export * from './member.mjs'; class ConversationClient { serviceUrl; get http() { return this._http; } set http(v) { ensureApiOutboundTelemetryMiddleware(v); this._http = v; this._activities.http = this._http; this._members.http = this._http; this._reactions.http = this._http; } _http; _activities; _members; _reactions; _apiClientSettings; constructor(serviceUrl, options, apiClientSettings) { this.serviceUrl = normalizeServiceUrl(serviceUrl); if (!options) { this._http = new Client(); } else if ("request" in options) { this._http = options; } else { this._http = new Client(options); } ensureApiOutboundTelemetryMiddleware(this._http); this._apiClientSettings = mergeApiClientSettings(apiClientSettings); this._activities = new ConversationActivityClient(this.serviceUrl, this.http, this._apiClientSettings); this._members = new ConversationMemberClient(this.serviceUrl, this.http, this._apiClientSettings); this._reactions = new ReactionClient(this.serviceUrl, this.http, this._apiClientSettings); } /** * @deprecated Use the flattened activity methods on `ConversationClient` * instead (e.g. `conversations.createActivity(conversationId, ...)`). This * grouped accessor will be removed in a future release. */ activities(conversationId) { return { create: (params) => this._activities.create(conversationId, params), update: (id, params) => this._activities.update(conversationId, id, params), reply: (id, params) => this._activities.reply(conversationId, id, params), delete: (id) => this._activities.delete(conversationId, id), members: (activityId) => this._activities.getMembers(conversationId, activityId), createTargeted: (params) => this._activities.createTargeted(conversationId, params), updateTargeted: (id, params) => this._activities.updateTargeted(conversationId, id, params), deleteTargeted: (id) => this._activities.deleteTargeted(conversationId, id) }; } /** * @deprecated Use the flattened member methods on `ConversationClient` * instead (e.g. `conversations.getMembers(conversationId)`). This grouped * accessor will be removed in a future release. */ members(conversationId) { return { get: () => this._members.get(conversationId), getById: (id) => this._members.getById(conversationId, id), getPaged: (pageSize, continuationToken) => this._members.getPaged(conversationId, pageSize, continuationToken), /** * @deprecated This will be removed by end of summer 2026. */ delete: (id) => this._members.delete(conversationId, id) }; } createActivity(conversationId, params) { return this._activities.create(conversationId, params); } updateActivity(conversationId, id, params) { return this._activities.update(conversationId, id, params); } replyToActivity(conversationId, id, params) { return this._activities.reply(conversationId, id, params); } createReplyChainActivity(conversationId, id, params) { return this._activities.createReplyChain(conversationId, id, params); } createTargetedReplyChainActivity(conversationId, id, params) { return this._activities.createTargetedReplyChain(conversationId, id, params); } /** * Delete an activity in a conversation. */ deleteActivity(conversationId, id) { return this._activities.delete(conversationId, id); } /** * Get the members of an activity in a conversation. */ getActivityMembers(conversationId, id) { return this._activities.getMembers(conversationId, id); } createTargetedActivity(conversationId, params) { return this._activities.createTargeted(conversationId, params); } updateTargetedActivity(conversationId, id, params) { return this._activities.updateTargeted(conversationId, id, params); } /** * Delete a targeted activity in a conversation. */ deleteTargetedActivity(conversationId, id) { return this._activities.deleteTargeted(conversationId, id); } /** * Get the members of a conversation. */ getMembers(conversationId) { return this._members.get(conversationId); } /** * Get a member of a conversation by id. */ getMemberById(conversationId, id) { return this._members.getById(conversationId, id); } /** * Get paged members of a conversation. */ getPagedMembers(conversationId, pageSize, continuationToken) { return this._members.getPaged(conversationId, pageSize, continuationToken); } /** * Add a reaction to an activity in a conversation. */ addReaction(conversationId, activityId, reactionType) { return this._reactions.add(conversationId, activityId, reactionType); } /** * Delete a reaction from an activity in a conversation. */ deleteReaction(conversationId, activityId, reactionType) { return this._reactions.delete(conversationId, activityId, reactionType); } /** * @deprecated This will be removed by end of summer 2026. */ async get(params) { const q = qs.stringify(params, { addQueryPrefix: true }); const res = await this.http.get( `${this.serviceUrl}/v3/conversations${q}` ); return res.data; } async create(params) { const url = `${this.serviceUrl}/v3/conversations`; const res = await this.http.post(url, params); return res.data; } } export { ConversationClient }; //# sourceMappingURL=index.mjs.map //# sourceMappingURL=index.mjs.map