@webex/plugin-meetings 3.8.0-next.29 → 3.8.0-next.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/meeting-info/meeting-info-v2.js +177 -89
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +21 -2
- package/dist/meetings/index.js.map +1 -1
- package/dist/metrics/constants.js +5 -2
- package/dist/metrics/constants.js.map +1 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +25 -2
- package/dist/types/meetings/index.d.ts +14 -5
- package/dist/types/metrics/constants.d.ts +5 -2
- package/dist/webinar/index.js +1 -1
- package/package.json +3 -3
- package/src/meeting-info/meeting-info-v2.ts +74 -2
- package/src/meetings/index.ts +27 -4
- package/src/metrics/constants.ts +5 -2
- package/test/unit/spec/meeting-info/meetinginfov2.js +82 -0
- package/test/unit/spec/meetings/index.js +21 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BEHAVIORAL_METRICS","exports","default","MEETINGS_REGISTRATION_FAILED","MEETINGS_REGISTRATION_SUCCESS","MEETINGS_REGISTRATION_STEP","MERCURY_CONNECTION_FAILURE","MERCURY_CONNECTION_RESTORED","JOIN_SUCCESS","JOIN_FAILURE","ADD_MEDIA_SUCCESS","ADD_MEDIA_FAILURE","ADD_MEDIA_RETRY","ROAP_MERCURY_EVENT_RECEIVED","CONNECTION_SUCCESS","CONNECTION_FAILURE","MEETING_LEAVE_FAILURE","MEETING_END_ALL_FAILURE","MEETING_END_ALL_INITIATED","GET_USER_MEDIA_FAILURE","GET_DISPLAY_MEDIA_FAILURE","JOIN_WITH_MEDIA_FAILURE","LLM_CONNECTION_AFTER_JOIN_FAILURE","RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE","DISCONNECT_DUE_TO_INACTIVITY","MEETING_MEDIA_INACTIVE","MEETING_RECONNECT_FAILURE","MEETING_MAX_REJOIN_FAILURE","MEETING_SHARE_SUCCESS","MEETING_SHARE_FAILURE","MEETING_START_WHITEBOARD_SHARE_FAILURE","MEETING_STOP_WHITEBOARD_SHARE_FAILURE","MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE","MUTE_AUDIO_FAILURE","MUTE_VIDEO_FAILURE","SET_MEETING_QUALITY_FAILURE","STOP_FLOOR_REQUEST_FAILURE","ADD_DIAL_IN_FAILURE","ADD_DIAL_OUT_FAILURE","UPDATE_MEDIA_FAILURE","UNMUTE_AUDIO_FAILURE","UNMUTE_VIDEO_FAILURE","ROAP_ANSWER_FAILURE","ROAP_GLARE_CONDITION","PEERCONNECTION_FAILURE","INVALID_ICE_CANDIDATE","UPLOAD_LOGS_FAILURE","UPLOAD_LOGS_SUCCESS","RECEIVE_TRANSCRIPTION_FAILURE","ENABLE_STATIC_METTING_LINK_SUCCESS","ENABLE_STATIC_METTING_LINK_FAILURE","MEETING_IS_IN_PROGRESS_ERROR","STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR","FETCH_MEETING_INFO_V1_SUCCESS","FETCH_MEETING_INFO_V1_FAILURE","DISABLE_STATIC_MEETING_LINK_SUCCESS","DISABLE_STATIC_MEETING_LINK_FAILURE","ADHOC_MEETING_SUCCESS","ADHOC_MEETING_FAILURE","VERIFY_PASSWORD_SUCCESS","VERIFY_PASSWORD_ERROR","VERIFY_CAPTCHA_ERROR","MOVE_TO_SUCCESS","MOVE_TO_FAILURE","MOVE_FROM_SUCCESS","MOVE_FROM_FAILURE","TURN_DISCOVERY_FAILURE","MEETING_INFO_POLICY_ERROR","LOCUS_DELTA_SYNC_FAILED","LOCUS_DELTA_OUT_OF_ORDER","PERMISSION_TOKEN_REFRESH","PERMISSION_TOKEN_REFRESH_ERROR","TURN_DISCOVERY_LATENCY","ROAP_OFFER_TO_ANSWER_LATENCY","ROAP_HTTP_RESPONSE_MISSING","TURN_DISCOVERY_REQUIRES_OK","REACHABILITY_COMPLETED","JOIN_WEBINAR_ERROR","GUEST_ENTERED_LOBBY","GUEST_EXITED_LOBBY","VERIFY_REGISTRATION_ID_SUCCESS","VERIFY_REGISTRATION_ID_ERROR","JOIN_FORBIDDEN_ERROR"],"sources":["constants.ts"],"sourcesContent":["// Metrics constants ----------------------------------------------------------\n\nconst BEHAVIORAL_METRICS = {\n MEETINGS_REGISTRATION_FAILED: 'js_sdk_meetings_registration_failed',\n MEETINGS_REGISTRATION_SUCCESS: 'js_sdk_meetings_registration_success',\n MEETINGS_REGISTRATION_STEP: 'meetings_registration_step',\n MERCURY_CONNECTION_FAILURE: 'js_sdk_mercury_connection_failure',\n MERCURY_CONNECTION_RESTORED: 'js_sdk_mercury_connection_restored',\n JOIN_SUCCESS: 'js_sdk_join_success',\n JOIN_FAILURE: 'js_sdk_join_failures',\n ADD_MEDIA_SUCCESS: 'js_sdk_add_media_success',\n ADD_MEDIA_FAILURE: 'js_sdk_add_media_failures',\n ADD_MEDIA_RETRY: 'js_sdk_add_media_retry',\n ROAP_MERCURY_EVENT_RECEIVED: 'js_sdk_roap_mercury_received',\n CONNECTION_SUCCESS: 'js_sdk_connection_success',\n CONNECTION_FAILURE: 'js_sdk_connection_failures',\n MEETING_LEAVE_FAILURE: 'js_sdk_meeting_leave_failure',\n MEETING_END_ALL_FAILURE: 'js_sdk_meeting_end_for_all_failure',\n MEETING_END_ALL_INITIATED: 'js_sdk_meeting_end_for_all_initiated',\n GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',\n GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',\n JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',\n LLM_CONNECTION_AFTER_JOIN_FAILURE: 'js_sdk_llm_connection_after_join_failure',\n RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE: 'js_sdk_receive_transcription_after_join_failure',\n\n DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',\n MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',\n MEETING_RECONNECT_FAILURE: 'js_sdk_meeting_reconnect_failures',\n MEETING_MAX_REJOIN_FAILURE: 'js_sdk_meeting_max_rejoin_failure',\n MEETING_SHARE_SUCCESS: 'js_sdk_meeting_share_success',\n MEETING_SHARE_FAILURE: 'js_sdk_meeting_share_failures',\n MEETING_START_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_start_whiteboard_share_failures',\n MEETING_STOP_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_stop_whiteboard_share_failures',\n MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE: 'js_sdk_meeting_share_video_mute_state_change',\n MUTE_AUDIO_FAILURE: 'js_sdk_mute_audio_failures',\n MUTE_VIDEO_FAILURE: 'js_sdk_mute_video_failures',\n SET_MEETING_QUALITY_FAILURE: 'js_sdk_set_meeting_quality_failures',\n STOP_FLOOR_REQUEST_FAILURE: 'js_sdk_stop_floor_request_failures',\n ADD_DIAL_IN_FAILURE: 'js_sdk_add_dial_in_failure',\n ADD_DIAL_OUT_FAILURE: 'js_sdk_add_dial_out_failure',\n UPDATE_MEDIA_FAILURE: 'js_sdk_update_media_failures',\n UNMUTE_AUDIO_FAILURE: 'js_sdk_unmute_audio_failures',\n UNMUTE_VIDEO_FAILURE: 'js_sdk_unmute_video_failures',\n ROAP_ANSWER_FAILURE: 'js_sdk_roap_answer_failures',\n ROAP_GLARE_CONDITION: 'js_sdk_roap_glar_condition',\n PEERCONNECTION_FAILURE: 'js_sdk_peerConnection_failures',\n INVALID_ICE_CANDIDATE: 'js_sdk_invalid_ice_candidate',\n UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',\n UPLOAD_LOGS_SUCCESS: 'js_sdk_upload_logs_success',\n RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',\n ENABLE_STATIC_METTING_LINK_SUCCESS: 'js_sdk_enable_static_meeting_link_success',\n ENABLE_STATIC_METTING_LINK_FAILURE: 'js_sdk_enable_static_meeting_link_failure',\n MEETING_IS_IN_PROGRESS_ERROR: 'js_sdk_meeting_is_in_progress_error',\n STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: 'js_sdk_static_meeting_link_already_exists_error',\n FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',\n FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',\n DISABLE_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_disable_static_meeting_link_success',\n DISABLE_STATIC_MEETING_LINK_FAILURE: 'js_sdk_disable_static_meeting_link_failure',\n ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',\n ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',\n VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',\n VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',\n VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error',\n MOVE_TO_SUCCESS: 'js_sdk_move_to_success',\n MOVE_TO_FAILURE: 'js_sdk_move_to_failure',\n MOVE_FROM_SUCCESS: 'js_sdk_move_from_success',\n MOVE_FROM_FAILURE: 'js_sdk_move_from_failure',\n TURN_DISCOVERY_FAILURE: 'js_sdk_turn_discovery_failure',\n MEETING_INFO_POLICY_ERROR: 'js_sdk_meeting_info_policy_error',\n LOCUS_DELTA_SYNC_FAILED: 'js_sdk_locus_delta_sync_failed',\n LOCUS_DELTA_OUT_OF_ORDER: 'js_sdk_locus_delta_ooo',\n PERMISSION_TOKEN_REFRESH: 'js_sdk_permission_token_refresh',\n PERMISSION_TOKEN_REFRESH_ERROR: 'js_sdk_permission_token_refresh_error',\n TURN_DISCOVERY_LATENCY: 'js_sdk_turn_discovery_latency',\n ROAP_OFFER_TO_ANSWER_LATENCY: 'js_sdk_roap_offer_to_answer_latency',\n ROAP_HTTP_RESPONSE_MISSING: 'js_sdk_roap_http_response_missing',\n TURN_DISCOVERY_REQUIRES_OK: 'js_sdk_turn_discovery_requires_ok',\n REACHABILITY_COMPLETED: 'js_sdk_reachability_completed',\n JOIN_WEBINAR_ERROR: 'js_sdk_join_webinar_error',\n GUEST_ENTERED_LOBBY: 'js_sdk_guest_entered_lobby',\n GUEST_EXITED_LOBBY: 'js_sdk_guest_exited_lobby',\n VERIFY_REGISTRATION_ID_SUCCESS: 'js_sdk_verify_registrationId_success',\n VERIFY_REGISTRATION_ID_ERROR: 'js_sdk_verify_registrationId_error',\n JOIN_FORBIDDEN_ERROR: 'js_sdk_join_forbidden_error',\n};\n\nexport {BEHAVIORAL_METRICS as default};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["BEHAVIORAL_METRICS","exports","default","MEETINGS_REGISTRATION_FAILED","MEETINGS_REGISTRATION_SUCCESS","MEETINGS_REGISTRATION_STEP","MERCURY_CONNECTION_FAILURE","MERCURY_CONNECTION_RESTORED","JOIN_SUCCESS","JOIN_FAILURE","ADD_MEDIA_SUCCESS","ADD_MEDIA_FAILURE","ADD_MEDIA_RETRY","ROAP_MERCURY_EVENT_RECEIVED","CONNECTION_SUCCESS","CONNECTION_FAILURE","MEETING_LEAVE_FAILURE","MEETING_END_ALL_FAILURE","MEETING_END_ALL_INITIATED","GET_USER_MEDIA_FAILURE","GET_DISPLAY_MEDIA_FAILURE","JOIN_WITH_MEDIA_FAILURE","LLM_CONNECTION_AFTER_JOIN_FAILURE","RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE","DISCONNECT_DUE_TO_INACTIVITY","MEETING_MEDIA_INACTIVE","MEETING_RECONNECT_FAILURE","MEETING_MAX_REJOIN_FAILURE","MEETING_SHARE_SUCCESS","MEETING_SHARE_FAILURE","MEETING_START_WHITEBOARD_SHARE_FAILURE","MEETING_STOP_WHITEBOARD_SHARE_FAILURE","MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE","MUTE_AUDIO_FAILURE","MUTE_VIDEO_FAILURE","SET_MEETING_QUALITY_FAILURE","STOP_FLOOR_REQUEST_FAILURE","ADD_DIAL_IN_FAILURE","ADD_DIAL_OUT_FAILURE","UPDATE_MEDIA_FAILURE","UNMUTE_AUDIO_FAILURE","UNMUTE_VIDEO_FAILURE","ROAP_ANSWER_FAILURE","ROAP_GLARE_CONDITION","PEERCONNECTION_FAILURE","INVALID_ICE_CANDIDATE","UPLOAD_LOGS_FAILURE","UPLOAD_LOGS_SUCCESS","RECEIVE_TRANSCRIPTION_FAILURE","MEETING_IS_IN_PROGRESS_ERROR","STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR","FETCH_MEETING_INFO_V1_SUCCESS","FETCH_MEETING_INFO_V1_FAILURE","ENABLE_STATIC_METTING_LINK_SUCCESS","ENABLE_STATIC_METTING_LINK_FAILURE","DISABLE_STATIC_MEETING_LINK_SUCCESS","DISABLE_STATIC_MEETING_LINK_FAILURE","ADHOC_MEETING_SUCCESS","ADHOC_MEETING_FAILURE","FETCH_STATIC_MEETING_LINK_SUCCESS","FETCH_STATIC_MEETING_LINK_FAILURE","MEETING_LINK_DOES_NOT_EXIST_ERROR","VERIFY_PASSWORD_SUCCESS","VERIFY_PASSWORD_ERROR","VERIFY_CAPTCHA_ERROR","MOVE_TO_SUCCESS","MOVE_TO_FAILURE","MOVE_FROM_SUCCESS","MOVE_FROM_FAILURE","TURN_DISCOVERY_FAILURE","MEETING_INFO_POLICY_ERROR","LOCUS_DELTA_SYNC_FAILED","LOCUS_DELTA_OUT_OF_ORDER","PERMISSION_TOKEN_REFRESH","PERMISSION_TOKEN_REFRESH_ERROR","TURN_DISCOVERY_LATENCY","ROAP_OFFER_TO_ANSWER_LATENCY","ROAP_HTTP_RESPONSE_MISSING","TURN_DISCOVERY_REQUIRES_OK","REACHABILITY_COMPLETED","JOIN_WEBINAR_ERROR","GUEST_ENTERED_LOBBY","GUEST_EXITED_LOBBY","VERIFY_REGISTRATION_ID_SUCCESS","VERIFY_REGISTRATION_ID_ERROR","JOIN_FORBIDDEN_ERROR"],"sources":["constants.ts"],"sourcesContent":["// Metrics constants ----------------------------------------------------------\n\nconst BEHAVIORAL_METRICS = {\n MEETINGS_REGISTRATION_FAILED: 'js_sdk_meetings_registration_failed',\n MEETINGS_REGISTRATION_SUCCESS: 'js_sdk_meetings_registration_success',\n MEETINGS_REGISTRATION_STEP: 'meetings_registration_step',\n MERCURY_CONNECTION_FAILURE: 'js_sdk_mercury_connection_failure',\n MERCURY_CONNECTION_RESTORED: 'js_sdk_mercury_connection_restored',\n JOIN_SUCCESS: 'js_sdk_join_success',\n JOIN_FAILURE: 'js_sdk_join_failures',\n ADD_MEDIA_SUCCESS: 'js_sdk_add_media_success',\n ADD_MEDIA_FAILURE: 'js_sdk_add_media_failures',\n ADD_MEDIA_RETRY: 'js_sdk_add_media_retry',\n ROAP_MERCURY_EVENT_RECEIVED: 'js_sdk_roap_mercury_received',\n CONNECTION_SUCCESS: 'js_sdk_connection_success',\n CONNECTION_FAILURE: 'js_sdk_connection_failures',\n MEETING_LEAVE_FAILURE: 'js_sdk_meeting_leave_failure',\n MEETING_END_ALL_FAILURE: 'js_sdk_meeting_end_for_all_failure',\n MEETING_END_ALL_INITIATED: 'js_sdk_meeting_end_for_all_initiated',\n GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',\n GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',\n JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',\n LLM_CONNECTION_AFTER_JOIN_FAILURE: 'js_sdk_llm_connection_after_join_failure',\n RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE: 'js_sdk_receive_transcription_after_join_failure',\n\n DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',\n MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',\n MEETING_RECONNECT_FAILURE: 'js_sdk_meeting_reconnect_failures',\n MEETING_MAX_REJOIN_FAILURE: 'js_sdk_meeting_max_rejoin_failure',\n MEETING_SHARE_SUCCESS: 'js_sdk_meeting_share_success',\n MEETING_SHARE_FAILURE: 'js_sdk_meeting_share_failures',\n MEETING_START_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_start_whiteboard_share_failures',\n MEETING_STOP_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_stop_whiteboard_share_failures',\n MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE: 'js_sdk_meeting_share_video_mute_state_change',\n MUTE_AUDIO_FAILURE: 'js_sdk_mute_audio_failures',\n MUTE_VIDEO_FAILURE: 'js_sdk_mute_video_failures',\n SET_MEETING_QUALITY_FAILURE: 'js_sdk_set_meeting_quality_failures',\n STOP_FLOOR_REQUEST_FAILURE: 'js_sdk_stop_floor_request_failures',\n ADD_DIAL_IN_FAILURE: 'js_sdk_add_dial_in_failure',\n ADD_DIAL_OUT_FAILURE: 'js_sdk_add_dial_out_failure',\n UPDATE_MEDIA_FAILURE: 'js_sdk_update_media_failures',\n UNMUTE_AUDIO_FAILURE: 'js_sdk_unmute_audio_failures',\n UNMUTE_VIDEO_FAILURE: 'js_sdk_unmute_video_failures',\n ROAP_ANSWER_FAILURE: 'js_sdk_roap_answer_failures',\n ROAP_GLARE_CONDITION: 'js_sdk_roap_glar_condition',\n PEERCONNECTION_FAILURE: 'js_sdk_peerConnection_failures',\n INVALID_ICE_CANDIDATE: 'js_sdk_invalid_ice_candidate',\n UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',\n UPLOAD_LOGS_SUCCESS: 'js_sdk_upload_logs_success',\n RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',\n MEETING_IS_IN_PROGRESS_ERROR: 'js_sdk_meeting_is_in_progress_error',\n STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: 'js_sdk_static_meeting_link_already_exists_error',\n FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',\n FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',\n ENABLE_STATIC_METTING_LINK_SUCCESS: 'js_sdk_enable_static_meeting_link_success',\n ENABLE_STATIC_METTING_LINK_FAILURE: 'js_sdk_enable_static_meeting_link_failure',\n DISABLE_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_disable_static_meeting_link_success',\n DISABLE_STATIC_MEETING_LINK_FAILURE: 'js_sdk_disable_static_meeting_link_failure',\n ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',\n ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',\n FETCH_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_fetch_static_meeting_link_success',\n FETCH_STATIC_MEETING_LINK_FAILURE: 'js_sdk_fetch_static_meeting_link_failure',\n MEETING_LINK_DOES_NOT_EXIST_ERROR: 'js_sdk_meeting_link_does_not_exist_error',\n VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',\n VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',\n VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error',\n MOVE_TO_SUCCESS: 'js_sdk_move_to_success',\n MOVE_TO_FAILURE: 'js_sdk_move_to_failure',\n MOVE_FROM_SUCCESS: 'js_sdk_move_from_success',\n MOVE_FROM_FAILURE: 'js_sdk_move_from_failure',\n TURN_DISCOVERY_FAILURE: 'js_sdk_turn_discovery_failure',\n MEETING_INFO_POLICY_ERROR: 'js_sdk_meeting_info_policy_error',\n LOCUS_DELTA_SYNC_FAILED: 'js_sdk_locus_delta_sync_failed',\n LOCUS_DELTA_OUT_OF_ORDER: 'js_sdk_locus_delta_ooo',\n PERMISSION_TOKEN_REFRESH: 'js_sdk_permission_token_refresh',\n PERMISSION_TOKEN_REFRESH_ERROR: 'js_sdk_permission_token_refresh_error',\n TURN_DISCOVERY_LATENCY: 'js_sdk_turn_discovery_latency',\n ROAP_OFFER_TO_ANSWER_LATENCY: 'js_sdk_roap_offer_to_answer_latency',\n ROAP_HTTP_RESPONSE_MISSING: 'js_sdk_roap_http_response_missing',\n TURN_DISCOVERY_REQUIRES_OK: 'js_sdk_turn_discovery_requires_ok',\n REACHABILITY_COMPLETED: 'js_sdk_reachability_completed',\n JOIN_WEBINAR_ERROR: 'js_sdk_join_webinar_error',\n GUEST_ENTERED_LOBBY: 'js_sdk_guest_entered_lobby',\n GUEST_EXITED_LOBBY: 'js_sdk_guest_exited_lobby',\n VERIFY_REGISTRATION_ID_SUCCESS: 'js_sdk_verify_registrationId_success',\n VERIFY_REGISTRATION_ID_ERROR: 'js_sdk_verify_registrationId_error',\n JOIN_FORBIDDEN_ERROR: 'js_sdk_join_forbidden_error',\n};\n\nexport {BEHAVIORAL_METRICS as default};\n"],"mappings":"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"}
|
|
@@ -99,6 +99,21 @@ export declare class MeetingInfoV2JoinForbiddenError extends Error {
|
|
|
99
99
|
*/
|
|
100
100
|
constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string);
|
|
101
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Error fetching static link for a conversation when it does not exist
|
|
104
|
+
*/
|
|
105
|
+
export declare class MeetingInfoV2StaticLinkDoesNotExistError extends Error {
|
|
106
|
+
sdkMessage: any;
|
|
107
|
+
wbxAppApiCode: any;
|
|
108
|
+
body: any;
|
|
109
|
+
/**
|
|
110
|
+
*
|
|
111
|
+
* @constructor
|
|
112
|
+
* @param {Number} [wbxAppApiErrorCode]
|
|
113
|
+
* @param {String} [message]
|
|
114
|
+
*/
|
|
115
|
+
constructor(wbxAppApiErrorCode?: number, message?: string);
|
|
116
|
+
}
|
|
102
117
|
/**
|
|
103
118
|
* Error enabling/disabling static meeting link
|
|
104
119
|
*/
|
|
@@ -186,10 +201,18 @@ export default class MeetingInfoV2 {
|
|
|
186
201
|
* @memberof MeetingInfo
|
|
187
202
|
*/
|
|
188
203
|
createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string): Promise<any>;
|
|
204
|
+
/**
|
|
205
|
+
* Fetches details for static meeting link
|
|
206
|
+
* @param {String} conversationUrl conversationUrl that's required to find static meeting link if it exists
|
|
207
|
+
* @returns {Promise} returns a Promise
|
|
208
|
+
* @public
|
|
209
|
+
* @memberof MeetingInfo
|
|
210
|
+
*/
|
|
211
|
+
fetchStaticMeetingLink(conversationUrl: string): Promise<any>;
|
|
189
212
|
/**
|
|
190
213
|
* Enables static meeting link
|
|
191
214
|
* @param {String} conversationUrl conversationUrl that's required to enable static meeting link
|
|
192
|
-
* @returns {Promise} returns a
|
|
215
|
+
* @returns {Promise} returns a Promise
|
|
193
216
|
* @public
|
|
194
217
|
* @memberof MeetingInfo
|
|
195
218
|
*/
|
|
@@ -197,7 +220,7 @@ export default class MeetingInfoV2 {
|
|
|
197
220
|
/**
|
|
198
221
|
* Disables static meeting link for given conversation url
|
|
199
222
|
* @param {String} conversationUrl conversationUrl that's required to disable static meeting link if it exists
|
|
200
|
-
* @returns {Promise} returns a
|
|
223
|
+
* @returns {Promise} returns a Promise
|
|
201
224
|
* @public
|
|
202
225
|
* @memberof MeetingInfo
|
|
203
226
|
*/
|
|
@@ -6,7 +6,7 @@ import { DeviceRegistrationOptions } from '@webex/internal-plugin-device';
|
|
|
6
6
|
import * as mediaHelpersModule from '@webex/media-helpers';
|
|
7
7
|
import 'webrtc-adapter';
|
|
8
8
|
import { DESTINATION_TYPE } from '../constants';
|
|
9
|
-
import
|
|
9
|
+
import { CallStateForMetrics } from '../meeting';
|
|
10
10
|
import Reachability from '../reachability';
|
|
11
11
|
import { INoiseReductionEffect, IVirtualBackgroundEffect, MeetingRegistrationStatus } from './meetings.types';
|
|
12
12
|
/**
|
|
@@ -348,6 +348,15 @@ export default class Meetings extends WebexPlugin {
|
|
|
348
348
|
* @memberof Meetings
|
|
349
349
|
*/
|
|
350
350
|
private destroy;
|
|
351
|
+
/**
|
|
352
|
+
* Fetch static meeting link for given conversation url.
|
|
353
|
+
*
|
|
354
|
+
* @param {string} conversationUrl - url for conversation
|
|
355
|
+
* @returns {Promise}
|
|
356
|
+
* @public
|
|
357
|
+
* @memberof Meetings
|
|
358
|
+
*/
|
|
359
|
+
fetchStaticMeetingLink(conversationUrl: string): Promise<any>;
|
|
351
360
|
/**
|
|
352
361
|
* Create a meeting or return an existing meeting.
|
|
353
362
|
*
|
|
@@ -373,21 +382,21 @@ export default class Meetings extends WebexPlugin {
|
|
|
373
382
|
*
|
|
374
383
|
*
|
|
375
384
|
* @param {string} conversationUrl - url for conversation
|
|
376
|
-
* @returns {Promise
|
|
385
|
+
* @returns {Promise}
|
|
377
386
|
* @public
|
|
378
387
|
* @memberof Meetings
|
|
379
388
|
*/
|
|
380
|
-
enableStaticMeetingLink(conversationUrl: string): Promise<
|
|
389
|
+
enableStaticMeetingLink(conversationUrl: string): Promise<any>;
|
|
381
390
|
/**
|
|
382
391
|
* Disable static meeting links for given conversation url.
|
|
383
392
|
*
|
|
384
393
|
*
|
|
385
394
|
* @param {string} conversationUrl - url for conversation
|
|
386
|
-
* @returns {Promise
|
|
395
|
+
* @returns {Promise}
|
|
387
396
|
* @public
|
|
388
397
|
* @memberof Meetings
|
|
389
398
|
*/
|
|
390
|
-
disableStaticMeetingLink(conversationUrl: string): Promise<
|
|
399
|
+
disableStaticMeetingLink(conversationUrl: string): Promise<any>;
|
|
391
400
|
/**
|
|
392
401
|
* Create meeting
|
|
393
402
|
*
|
|
@@ -45,16 +45,19 @@ declare const BEHAVIORAL_METRICS: {
|
|
|
45
45
|
UPLOAD_LOGS_FAILURE: string;
|
|
46
46
|
UPLOAD_LOGS_SUCCESS: string;
|
|
47
47
|
RECEIVE_TRANSCRIPTION_FAILURE: string;
|
|
48
|
-
ENABLE_STATIC_METTING_LINK_SUCCESS: string;
|
|
49
|
-
ENABLE_STATIC_METTING_LINK_FAILURE: string;
|
|
50
48
|
MEETING_IS_IN_PROGRESS_ERROR: string;
|
|
51
49
|
STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: string;
|
|
52
50
|
FETCH_MEETING_INFO_V1_SUCCESS: string;
|
|
53
51
|
FETCH_MEETING_INFO_V1_FAILURE: string;
|
|
52
|
+
ENABLE_STATIC_METTING_LINK_SUCCESS: string;
|
|
53
|
+
ENABLE_STATIC_METTING_LINK_FAILURE: string;
|
|
54
54
|
DISABLE_STATIC_MEETING_LINK_SUCCESS: string;
|
|
55
55
|
DISABLE_STATIC_MEETING_LINK_FAILURE: string;
|
|
56
56
|
ADHOC_MEETING_SUCCESS: string;
|
|
57
57
|
ADHOC_MEETING_FAILURE: string;
|
|
58
|
+
FETCH_STATIC_MEETING_LINK_SUCCESS: string;
|
|
59
|
+
FETCH_STATIC_MEETING_LINK_FAILURE: string;
|
|
60
|
+
MEETING_LINK_DOES_NOT_EXIST_ERROR: string;
|
|
58
61
|
VERIFY_PASSWORD_SUCCESS: string;
|
|
59
62
|
VERIFY_PASSWORD_ERROR: string;
|
|
60
63
|
VERIFY_CAPTCHA_ERROR: string;
|
package/dist/webinar/index.js
CHANGED
package/package.json
CHANGED
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@webex/eslint-config-legacy": "0.0.0",
|
|
44
44
|
"@webex/jest-config-legacy": "0.0.0",
|
|
45
45
|
"@webex/legacy-tools": "0.0.0",
|
|
46
|
-
"@webex/plugin-meetings": "3.8.0-next.
|
|
46
|
+
"@webex/plugin-meetings": "3.8.0-next.30",
|
|
47
47
|
"@webex/plugin-rooms": "3.8.0-next.13",
|
|
48
48
|
"@webex/test-helper-chai": "3.8.0-next.11",
|
|
49
49
|
"@webex/test-helper-mocha": "3.8.0-next.11",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"@webex/internal-plugin-metrics": "3.8.0-next.11",
|
|
72
72
|
"@webex/internal-plugin-support": "3.8.0-next.13",
|
|
73
73
|
"@webex/internal-plugin-user": "3.8.0-next.11",
|
|
74
|
-
"@webex/internal-plugin-voicea": "3.8.0-next.
|
|
74
|
+
"@webex/internal-plugin-voicea": "3.8.0-next.30",
|
|
75
75
|
"@webex/media-helpers": "3.8.0-next.12",
|
|
76
76
|
"@webex/plugin-people": "3.8.0-next.13",
|
|
77
77
|
"@webex/plugin-rooms": "3.8.0-next.13",
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"//": [
|
|
93
93
|
"TODO: upgrade jwt-decode when moving to node 18"
|
|
94
94
|
],
|
|
95
|
-
"version": "3.8.0-next.
|
|
95
|
+
"version": "3.8.0-next.30"
|
|
96
96
|
}
|
|
@@ -18,6 +18,7 @@ const ADHOC_MEETING_DEFAULT_ERROR =
|
|
|
18
18
|
'Failed starting the adhoc meeting, Please contact support team ';
|
|
19
19
|
const MEETING_IS_IN_PROGRESS_MESSAGE = 'Meeting is in progress';
|
|
20
20
|
const STATIC_MEETING_LINK_ALREADY_EXISTS_MESSAGE = 'Static meeting link already exists';
|
|
21
|
+
const FETCH_STATIC_MEETING_LINK = 'Meeting link does not exists for conversation';
|
|
21
22
|
const CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];
|
|
22
23
|
const CAPTCHA_ERROR_REQUIRES_REGISTRATION_ID_CODES = [423007];
|
|
23
24
|
|
|
@@ -195,6 +196,28 @@ export class MeetingInfoV2JoinForbiddenError extends Error {
|
|
|
195
196
|
}
|
|
196
197
|
}
|
|
197
198
|
|
|
199
|
+
/**
|
|
200
|
+
* Error fetching static link for a conversation when it does not exist
|
|
201
|
+
*/
|
|
202
|
+
export class MeetingInfoV2StaticLinkDoesNotExistError extends Error {
|
|
203
|
+
sdkMessage: any;
|
|
204
|
+
wbxAppApiCode: any;
|
|
205
|
+
body: any;
|
|
206
|
+
/**
|
|
207
|
+
*
|
|
208
|
+
* @constructor
|
|
209
|
+
* @param {Number} [wbxAppApiErrorCode]
|
|
210
|
+
* @param {String} [message]
|
|
211
|
+
*/
|
|
212
|
+
constructor(wbxAppApiErrorCode?: number, message: string = FETCH_STATIC_MEETING_LINK) {
|
|
213
|
+
super(`${message}, code=${wbxAppApiErrorCode}`);
|
|
214
|
+
this.name = 'MeetingInfoV2StaticLinkDoesNotExistError';
|
|
215
|
+
this.sdkMessage = message;
|
|
216
|
+
this.stack = new Error().stack;
|
|
217
|
+
this.wbxAppApiCode = wbxAppApiErrorCode;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
198
221
|
/**
|
|
199
222
|
* Error enabling/disabling static meeting link
|
|
200
223
|
*/
|
|
@@ -434,10 +457,59 @@ export default class MeetingInfoV2 {
|
|
|
434
457
|
});
|
|
435
458
|
}
|
|
436
459
|
|
|
460
|
+
/**
|
|
461
|
+
* Fetches details for static meeting link
|
|
462
|
+
* @param {String} conversationUrl conversationUrl that's required to find static meeting link if it exists
|
|
463
|
+
* @returns {Promise} returns a Promise
|
|
464
|
+
* @public
|
|
465
|
+
* @memberof MeetingInfo
|
|
466
|
+
*/
|
|
467
|
+
async fetchStaticMeetingLink(conversationUrl: string) {
|
|
468
|
+
if (!this.webex.meetings.preferredWebexSite) {
|
|
469
|
+
throw Error('No preferred webex site found');
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
const body = {
|
|
473
|
+
spaceUrl: conversationUrl,
|
|
474
|
+
};
|
|
475
|
+
|
|
476
|
+
const uri = this.webex.meetings.preferredWebexSite
|
|
477
|
+
? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant/query`
|
|
478
|
+
: '';
|
|
479
|
+
|
|
480
|
+
return this.webex
|
|
481
|
+
.request({
|
|
482
|
+
method: HTTP_VERBS.POST,
|
|
483
|
+
uri,
|
|
484
|
+
body,
|
|
485
|
+
})
|
|
486
|
+
.then((requestResult) => {
|
|
487
|
+
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_STATIC_MEETING_LINK_SUCCESS);
|
|
488
|
+
|
|
489
|
+
return requestResult;
|
|
490
|
+
})
|
|
491
|
+
.catch((err) => {
|
|
492
|
+
if (err?.statusCode === 403) {
|
|
493
|
+
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_LINK_DOES_NOT_EXIST_ERROR, {
|
|
494
|
+
reason: err.message,
|
|
495
|
+
stack: err.stack,
|
|
496
|
+
});
|
|
497
|
+
|
|
498
|
+
throw new MeetingInfoV2StaticLinkDoesNotExistError(err.body?.code, err.body?.message);
|
|
499
|
+
}
|
|
500
|
+
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_STATIC_MEETING_LINK_FAILURE, {
|
|
501
|
+
reason: err.message,
|
|
502
|
+
stack: err.stack,
|
|
503
|
+
});
|
|
504
|
+
|
|
505
|
+
throw err;
|
|
506
|
+
});
|
|
507
|
+
}
|
|
508
|
+
|
|
437
509
|
/**
|
|
438
510
|
* Enables static meeting link
|
|
439
511
|
* @param {String} conversationUrl conversationUrl that's required to enable static meeting link
|
|
440
|
-
* @returns {Promise} returns a
|
|
512
|
+
* @returns {Promise} returns a Promise
|
|
441
513
|
* @public
|
|
442
514
|
* @memberof MeetingInfo
|
|
443
515
|
*/
|
|
@@ -486,7 +558,7 @@ export default class MeetingInfoV2 {
|
|
|
486
558
|
/**
|
|
487
559
|
* Disables static meeting link for given conversation url
|
|
488
560
|
* @param {String} conversationUrl conversationUrl that's required to disable static meeting link if it exists
|
|
489
|
-
* @returns {Promise} returns a
|
|
561
|
+
* @returns {Promise} returns a Promise
|
|
490
562
|
* @public
|
|
491
563
|
* @memberof MeetingInfo
|
|
492
564
|
*/
|
package/src/meetings/index.ts
CHANGED
|
@@ -1217,6 +1217,29 @@ export default class Meetings extends WebexPlugin {
|
|
|
1217
1217
|
);
|
|
1218
1218
|
}
|
|
1219
1219
|
|
|
1220
|
+
/**
|
|
1221
|
+
* Fetch static meeting link for given conversation url.
|
|
1222
|
+
*
|
|
1223
|
+
* @param {string} conversationUrl - url for conversation
|
|
1224
|
+
* @returns {Promise}
|
|
1225
|
+
* @public
|
|
1226
|
+
* @memberof Meetings
|
|
1227
|
+
*/
|
|
1228
|
+
public fetchStaticMeetingLink(conversationUrl: string): Promise<any> {
|
|
1229
|
+
return (
|
|
1230
|
+
this.meetingInfo
|
|
1231
|
+
.fetchStaticMeetingLink(conversationUrl)
|
|
1232
|
+
// Catch a failure to fetch static meeting link.
|
|
1233
|
+
.catch((error) => {
|
|
1234
|
+
LoggerProxy.logger.error(
|
|
1235
|
+
`Meetings:index#fetchStaticMeetingLink --> ERROR, unable to fetch persistent meeting link: ${error.message}`
|
|
1236
|
+
);
|
|
1237
|
+
|
|
1238
|
+
return Promise.reject(error);
|
|
1239
|
+
})
|
|
1240
|
+
);
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1220
1243
|
/**
|
|
1221
1244
|
* Create a meeting or return an existing meeting.
|
|
1222
1245
|
*
|
|
@@ -1374,11 +1397,11 @@ export default class Meetings extends WebexPlugin {
|
|
|
1374
1397
|
*
|
|
1375
1398
|
*
|
|
1376
1399
|
* @param {string} conversationUrl - url for conversation
|
|
1377
|
-
* @returns {Promise
|
|
1400
|
+
* @returns {Promise}
|
|
1378
1401
|
* @public
|
|
1379
1402
|
* @memberof Meetings
|
|
1380
1403
|
*/
|
|
1381
|
-
public enableStaticMeetingLink(conversationUrl: string): Promise<
|
|
1404
|
+
public enableStaticMeetingLink(conversationUrl: string): Promise<any> {
|
|
1382
1405
|
return (
|
|
1383
1406
|
this.meetingInfo
|
|
1384
1407
|
.enableStaticMeetingLink(conversationUrl)
|
|
@@ -1398,11 +1421,11 @@ export default class Meetings extends WebexPlugin {
|
|
|
1398
1421
|
*
|
|
1399
1422
|
*
|
|
1400
1423
|
* @param {string} conversationUrl - url for conversation
|
|
1401
|
-
* @returns {Promise
|
|
1424
|
+
* @returns {Promise}
|
|
1402
1425
|
* @public
|
|
1403
1426
|
* @memberof Meetings
|
|
1404
1427
|
*/
|
|
1405
|
-
public disableStaticMeetingLink(conversationUrl: string): Promise<
|
|
1428
|
+
public disableStaticMeetingLink(conversationUrl: string): Promise<any> {
|
|
1406
1429
|
return (
|
|
1407
1430
|
this.meetingInfo
|
|
1408
1431
|
.disableStaticMeetingLink(conversationUrl)
|
package/src/metrics/constants.ts
CHANGED
|
@@ -48,16 +48,19 @@ const BEHAVIORAL_METRICS = {
|
|
|
48
48
|
UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',
|
|
49
49
|
UPLOAD_LOGS_SUCCESS: 'js_sdk_upload_logs_success',
|
|
50
50
|
RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',
|
|
51
|
-
ENABLE_STATIC_METTING_LINK_SUCCESS: 'js_sdk_enable_static_meeting_link_success',
|
|
52
|
-
ENABLE_STATIC_METTING_LINK_FAILURE: 'js_sdk_enable_static_meeting_link_failure',
|
|
53
51
|
MEETING_IS_IN_PROGRESS_ERROR: 'js_sdk_meeting_is_in_progress_error',
|
|
54
52
|
STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: 'js_sdk_static_meeting_link_already_exists_error',
|
|
55
53
|
FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',
|
|
56
54
|
FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',
|
|
55
|
+
ENABLE_STATIC_METTING_LINK_SUCCESS: 'js_sdk_enable_static_meeting_link_success',
|
|
56
|
+
ENABLE_STATIC_METTING_LINK_FAILURE: 'js_sdk_enable_static_meeting_link_failure',
|
|
57
57
|
DISABLE_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_disable_static_meeting_link_success',
|
|
58
58
|
DISABLE_STATIC_MEETING_LINK_FAILURE: 'js_sdk_disable_static_meeting_link_failure',
|
|
59
59
|
ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',
|
|
60
60
|
ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',
|
|
61
|
+
FETCH_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_fetch_static_meeting_link_success',
|
|
62
|
+
FETCH_STATIC_MEETING_LINK_FAILURE: 'js_sdk_fetch_static_meeting_link_failure',
|
|
63
|
+
MEETING_LINK_DOES_NOT_EXIST_ERROR: 'js_sdk_meeting_link_does_not_exist_error',
|
|
61
64
|
VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',
|
|
62
65
|
VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',
|
|
63
66
|
VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error',
|
|
@@ -19,6 +19,7 @@ import MeetingInfo, {
|
|
|
19
19
|
MeetingInfoV2JoinForbiddenError,
|
|
20
20
|
MeetingInfoV2MeetingIsInProgressError,
|
|
21
21
|
MeetingInfoV2StaticMeetingLinkAlreadyExists,
|
|
22
|
+
MeetingInfoV2StaticLinkDoesNotExistError,
|
|
22
23
|
} from '@webex/plugin-meetings/src/meeting-info/meeting-info-v2';
|
|
23
24
|
import MeetingInfoUtil from '@webex/plugin-meetings/src/meeting-info/utilv2';
|
|
24
25
|
import Metrics from '@webex/plugin-meetings/src/metrics';
|
|
@@ -92,6 +93,87 @@ describe('plugin-meetings', () => {
|
|
|
92
93
|
meetingInfo = new MeetingInfo(webex);
|
|
93
94
|
});
|
|
94
95
|
|
|
96
|
+
describe('#fetchStaticMeetingLink', () => {
|
|
97
|
+
it('should fetch static meeting link for given conversation url', async () => {
|
|
98
|
+
const conversationUrl = 'conv.fakeconversationurl.com';
|
|
99
|
+
const body = {spaceUrl: conversationUrl};
|
|
100
|
+
const requestResponse = {statusCode: 200, body};
|
|
101
|
+
webex.request.resolves(requestResponse);
|
|
102
|
+
const result = await meetingInfo.fetchStaticMeetingLink(conversationUrl);
|
|
103
|
+
|
|
104
|
+
assert.calledWith(webex.request, {
|
|
105
|
+
method: 'POST',
|
|
106
|
+
uri: `https://${webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant/query`,
|
|
107
|
+
body,
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
assert(Metrics.sendBehavioralMetric.calledOnce);
|
|
111
|
+
assert.calledWith(
|
|
112
|
+
Metrics.sendBehavioralMetric,
|
|
113
|
+
BEHAVIORAL_METRICS.FETCH_STATIC_MEETING_LINK_SUCCESS
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
assert.deepEqual(result, requestResponse);
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
it('should not fetch static meeting link for given conversation url if no preferred webex site', async () => {
|
|
120
|
+
webex.meetings.preferredWebexSite = undefined;
|
|
121
|
+
|
|
122
|
+
const conversationUrl = 'conv.fakeconversationurl.com';
|
|
123
|
+
try {
|
|
124
|
+
await meetingInfo.fetchStaticMeetingLink(conversationUrl);
|
|
125
|
+
|
|
126
|
+
assert.calledWith(webex.request, {
|
|
127
|
+
method: 'POST',
|
|
128
|
+
uri: `https://${webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant/query`,
|
|
129
|
+
body,
|
|
130
|
+
});
|
|
131
|
+
} catch (err) {
|
|
132
|
+
assert.deepEqual(err.message, 'No preferred webex site found');
|
|
133
|
+
assert.notCalled(webex.request);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
it('handles error for MeetingInfoV2StaticLinkDoesNotExistError', async () => {
|
|
138
|
+
const conversationUrl = 'conv.fakeconversationurl.com';
|
|
139
|
+
webex.request = sinon
|
|
140
|
+
.stub()
|
|
141
|
+
.rejects({stack: 'a stack', message: 'a message', statusCode: 403, body: {code: 400000}});
|
|
142
|
+
try {
|
|
143
|
+
await meetingInfo.fetchStaticMeetingLink(conversationUrl);
|
|
144
|
+
} catch (err) {
|
|
145
|
+
assert.equal(err.wbxAppApiCode, 400000);
|
|
146
|
+
assert.instanceOf(err, MeetingInfoV2StaticLinkDoesNotExistError);
|
|
147
|
+
assert.deepEqual(
|
|
148
|
+
err.message,
|
|
149
|
+
'Meeting link does not exists for conversation, code=400000'
|
|
150
|
+
);
|
|
151
|
+
assert.calledWith(
|
|
152
|
+
Metrics.sendBehavioralMetric,
|
|
153
|
+
BEHAVIORAL_METRICS.MEETING_LINK_DOES_NOT_EXIST_ERROR,
|
|
154
|
+
{reason: 'a message', stack: 'a stack'}
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
it('handles generic error when fetching static link', async () => {
|
|
160
|
+
const conversationUrl = 'conv.fakeconversationurl.com';
|
|
161
|
+
webex.request = sinon
|
|
162
|
+
.stub()
|
|
163
|
+
.rejects({stack: 'a stack', message: 'a message', statusCode: 500, body: {code: 400000}});
|
|
164
|
+
try {
|
|
165
|
+
await meetingInfo.fetchStaticMeetingLink(conversationUrl);
|
|
166
|
+
} catch (err) {
|
|
167
|
+
assert(Metrics.sendBehavioralMetric.calledOnce);
|
|
168
|
+
assert.calledWith(
|
|
169
|
+
Metrics.sendBehavioralMetric,
|
|
170
|
+
BEHAVIORAL_METRICS.FETCH_STATIC_MEETING_LINK_FAILURE,
|
|
171
|
+
{reason: 'a message', stack: 'a stack'}
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
|
|
95
177
|
describe('#enableStaticMeetingLink', () => {
|
|
96
178
|
const setup = () => {
|
|
97
179
|
const invitee = [];
|
|
@@ -932,6 +932,27 @@ describe('plugin-meetings', () => {
|
|
|
932
932
|
});
|
|
933
933
|
});
|
|
934
934
|
});
|
|
935
|
+
describe('#fetchStaticMeetingLink', () => {
|
|
936
|
+
const conversationUrl = 'conv.fakeconversationurl.com';
|
|
937
|
+
|
|
938
|
+
afterEach(() => {
|
|
939
|
+
sinon.restore();
|
|
940
|
+
});
|
|
941
|
+
|
|
942
|
+
it('should have #fetchStaticMeetingLink', () => {
|
|
943
|
+
assert.exists(webex.meetings.fetchStaticMeetingLink);
|
|
944
|
+
});
|
|
945
|
+
|
|
946
|
+
it('should call MeetingInfo#fetchStaticMeetingLink() with proper params', () => {
|
|
947
|
+
webex.meetings.meetingInfo.fetchStaticMeetingLink = sinon
|
|
948
|
+
.stub()
|
|
949
|
+
.resolves(conversationUrl);
|
|
950
|
+
|
|
951
|
+
return webex.meetings.fetchStaticMeetingLink(conversationUrl).then(() => {
|
|
952
|
+
assert.calledWith(webex.meetings.meetingInfo.fetchStaticMeetingLink, conversationUrl);
|
|
953
|
+
});
|
|
954
|
+
});
|
|
955
|
+
});
|
|
935
956
|
describe('#enableStaticMeetingLink', () => {
|
|
936
957
|
const conversationUrl = 'conv.fakeconversationurl.com';
|
|
937
958
|
|