@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
1 lines • 4.67 kB
Source Map (JSON)
{"version":3,"sources":["../../src/clients/meeting.ts"],"names":["HttpClient"],"mappings":";;;;AAeO,MAAM,aAAA,CAAc;AAAA,EAChB,UAAA;AAAA,EAET,IAAI,IAAA,GAAO;AACT,IAAA,OAAO,IAAA,CAAK,KAAA;AAAA,EACd;AAAA,EACA,IAAI,KAAK,CAAA,EAAG;AACV,IAAA,IAAA,CAAK,KAAA,GAAQ,CAAA;AAAA,EACf;AAAA,EACU,KAAA;AAAA,EACA,kBAAA;AAAA,EAEV,WAAA,CAAY,UAAA,EAAoB,OAAA,EAA0C,iBAAA,EAAgD;AACxH,IAAA,IAAA,CAAK,UAAA,GAAa,oBAAoB,UAAU,CAAA;AAEhD,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAIA,MAAA,EAAW;AAAA,IAC9B,CAAA,MAAA,IAAW,aAAa,OAAA,EAAS;AAC/B,MAAA,IAAA,CAAK,KAAA,GAAQ,OAAA;AAAA,IACf,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAIA,MAAA,CAAW,OAAO,CAAA;AAAA,IACrC;AAEA,IAAA,IAAA,CAAK,kBAAA,GAAqB,uBAAuB,iBAAiB,CAAA;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,QAAQ,EAAA,EAAY;AACxB,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,UAAU,gBAAgB,EAAE,CAAA,CAAA;AAChD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,IAAA,CAAK,IAAiB,GAAG,CAAA;AAChD,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,cAAA,CAAe,SAAA,EAAmB,EAAA,EAAY,QAAA,EAAkB;AACpE,IAAA,MAAM,GAAA,GAAM,GAAG,IAAA,CAAK,UAAU,gBAAgB,SAAS,CAAA,cAAA,EAAiB,EAAE,CAAA,UAAA,EAAa,QAAQ,CAAA,CAAA;AAC/F,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,IAAA,CAAK,IAAwB,GAAG,CAAA;AACvD,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAM,gBAAA,CACJ,SAAA,EACA,MAAA,EACkD;AAClD,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,IAAA,EAAM,OAAO,IAAA,IAAQ,6BAAA;AAAA,MACrB,OAAO,MAAA,CAAO;AAAA,KAChB;AACA,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAA,CAAK,UAAU,gBAAgB,SAAS,CAAA,aAAA,CAAA;AACvD,IAAA,MAAM,MAAM,MAAM,IAAA,CAAK,IAAA,CAAK,IAAA,CAAkC,KAAK,IAAI,CAAA;AACvE,IAAA,OAAO,IAAI,IAAA,IAAQ,MAAA;AAAA,EACrB;AACF","file":"meeting.mjs","sourcesContent":["import {\n Client as HttpClient,\n type ClientOptions as HttpClientOptions\n} from '@microsoft/teams.common';\n\nimport {\n MeetingInfo,\n MeetingNotificationParams,\n MeetingNotificationResponse,\n MeetingParticipant\n} from '../models';\n\nimport { ApiClientSettings, mergeApiClientSettings } from './api-client-settings';\nimport { normalizeServiceUrl } from './service-url';\n\nexport class MeetingClient {\n readonly serviceUrl: string;\n\n get http() {\n return this._http;\n }\n set http(v) {\n this._http = v;\n }\n protected _http: HttpClient;\n protected _apiClientSettings: Partial<ApiClientSettings>;\n\n constructor(serviceUrl: string, options?: HttpClient | HttpClientOptions, apiClientSettings?: Partial<ApiClientSettings>) {\n this.serviceUrl = normalizeServiceUrl(serviceUrl);\n\n if (!options) {\n this._http = new HttpClient();\n } else if ('request' in options) {\n this._http = options;\n } else {\n this._http = new HttpClient(options);\n }\n\n this._apiClientSettings = mergeApiClientSettings(apiClientSettings);\n }\n\n /**\n * Retrieves meeting information including details, organizer, and conversation.\n * @param id - The meeting ID.\n */\n async getById(id: string) {\n const url = `${this.serviceUrl}/v1/meetings/${id}`;\n const res = await this.http.get<MeetingInfo>(url);\n return res.data;\n }\n\n /**\n * Retrieves information about a specific participant in a meeting.\n * @param meetingId - The meeting ID.\n * @param id - The user AAD object ID\n * @param tenantId - The tenant ID of the meeting and user.\n * @returns {MeetingParticipant} The meeting participant information.\n */\n async getParticipant(meetingId: string, id: string, tenantId: string) {\n const url = `${this.serviceUrl}/v1/meetings/${meetingId}/participants/${id}?tenantId=${tenantId}`;\n const res = await this.http.get<MeetingParticipant>(url);\n return res.data;\n }\n\n /**\n * Send a targeted in-meeting notification to specific participants.\n *\n * Returns `undefined` on full success (HTTP 202). Returns a `MeetingNotificationResponse`\n * with per-recipient failure info on partial success (HTTP 207).\n *\n * Requires the RSC permission `OnlineMeetingNotification.Send.Chat` and the ECS flag\n * enabled for the tenant/bot.\n *\n * @param meetingId - The BASE64-encoded meeting ID.\n * @param params - The notification parameters including recipients and surfaces.\n */\n async sendNotification(\n meetingId: string,\n params: MeetingNotificationParams\n ): Promise<MeetingNotificationResponse | undefined> {\n const body = {\n type: params.type ?? 'targetedMeetingNotification',\n value: params.value,\n };\n const url = `${this.serviceUrl}/v1/meetings/${meetingId}/notification`;\n const res = await this.http.post<MeetingNotificationResponse>(url, body);\n return res.data || undefined;\n }\n}\n"]}