@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
JavaScript
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