@wazo/sdk 0.38.7 → 0.38.8
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/wazo-sdk.js +2 -2
- package/esm/__tests__/api-client.test.js +142 -2
- package/esm/__tests__/web-rtc-client.test.js +227 -27
- package/esm/api/calld.js +8 -0
- package/esm/api/confd.js +134 -2
- package/esm/api-client.js +142 -2
- package/esm/checker/Checker.js +183 -24
- package/esm/checker/checks/aor.js +142 -2
- package/esm/checker/checks/api.js +142 -2
- package/esm/checker/checks/index.js +183 -24
- package/esm/checker/checks/wazo-websocket.js +2 -0
- package/esm/checker/checks/webrtc-transport.js +181 -24
- package/esm/checker/checks/webrtc.js +181 -24
- package/esm/domain/AdHocAPIConference.js +142 -2
- package/esm/domain/Features.js +142 -2
- package/esm/domain/Meeting.js +18 -0
- package/esm/domain/MeetingAuthorization.js +70 -0
- package/esm/domain/Phone/CTIPhone.js +142 -2
- package/esm/domain/__tests__/Meeting.test.js +87 -1
- package/esm/domain/__tests__/MeetingAuthorization.test.js +109 -0
- package/esm/index.js +226 -27
- package/esm/service/CallApi.js +142 -2
- package/esm/service/getApiClient.js +142 -2
- package/esm/simple/Auth.js +226 -27
- package/esm/simple/Configuration.js +226 -27
- package/esm/simple/Directory.js +142 -2
- package/esm/simple/Phone.js +226 -27
- package/esm/simple/Websocket.js +3 -0
- package/esm/simple/index.js +226 -27
- package/esm/simple/room/LocalParticipant.js +226 -27
- package/esm/simple/room/Participant.js +226 -27
- package/esm/simple/room/RemoteParticipant.js +226 -27
- package/esm/simple/room/Room.js +226 -27
- package/esm/simple/room/SipRoom.js +226 -27
- package/esm/simple/room/Stream.js +226 -27
- package/esm/simple/room/__tests__/Participant.test.js +14747 -0
- package/esm/simple/room/__tests__/RemoteParticipant.test.js +226 -27
- package/esm/simple/utils.js +226 -27
- package/esm/utils/__tests__/object.test.js +57 -0
- package/esm/utils/__tests__/string.test.js +30 -0
- package/esm/utils/object.js +24 -0
- package/esm/utils/string.js +10 -0
- package/esm/web-rtc-client.js +181 -24
- package/esm/websocket-client.js +3 -1
- package/lib/__tests__/api-client.test.js +142 -2
- package/lib/__tests__/web-rtc-client.test.js +227 -27
- package/lib/api/calld.js +8 -0
- package/lib/api/confd.js +134 -2
- package/lib/api-client.js +142 -2
- package/lib/checker/Checker.js +183 -24
- package/lib/checker/checks/aor.js +142 -2
- package/lib/checker/checks/api.js +142 -2
- package/lib/checker/checks/index.js +183 -24
- package/lib/checker/checks/wazo-websocket.js +2 -0
- package/lib/checker/checks/webrtc-transport.js +181 -24
- package/lib/checker/checks/webrtc.js +181 -24
- package/lib/domain/AdHocAPIConference.js +142 -2
- package/lib/domain/Features.js +142 -2
- package/lib/domain/Meeting.js +18 -0
- package/lib/domain/MeetingAuthorization.js +79 -0
- package/lib/domain/Phone/CTIPhone.js +142 -2
- package/lib/domain/__tests__/Meeting.test.js +87 -1
- package/lib/domain/__tests__/MeetingAuthorization.test.js +111 -0
- package/lib/index.js +226 -27
- package/lib/service/CallApi.js +142 -2
- package/lib/service/getApiClient.js +142 -2
- package/lib/simple/Auth.js +226 -27
- package/lib/simple/Configuration.js +226 -27
- package/lib/simple/Directory.js +142 -2
- package/lib/simple/Phone.js +226 -27
- package/lib/simple/Websocket.js +3 -0
- package/lib/simple/index.js +226 -27
- package/lib/simple/room/LocalParticipant.js +226 -27
- package/lib/simple/room/Participant.js +226 -27
- package/lib/simple/room/RemoteParticipant.js +226 -27
- package/lib/simple/room/Room.js +226 -27
- package/lib/simple/room/SipRoom.js +226 -27
- package/lib/simple/room/Stream.js +226 -27
- package/lib/simple/room/__tests__/Participant.test.js +14757 -0
- package/lib/simple/room/__tests__/RemoteParticipant.test.js +226 -27
- package/lib/simple/utils.js +226 -27
- package/lib/utils/__tests__/object.test.js +59 -0
- package/lib/utils/__tests__/string.test.js +32 -0
- package/lib/utils/object.js +28 -0
- package/lib/utils/string.js +14 -0
- package/lib/web-rtc-client.js +181 -24
- package/lib/websocket-client.js +3 -0
- package/package.json +2 -2
- package/src/__tests__/web-rtc-client.test.js +46 -3
- package/src/api/calld.js +8 -0
- package/src/api/confd.js +43 -2
- package/src/domain/Meeting.js +20 -0
- package/src/domain/MeetingAuthorization.js +67 -0
- package/src/domain/__tests__/Meeting.test.js +70 -1
- package/src/domain/__tests__/MeetingAuthorization.test.js +58 -0
- package/src/simple/room/Participant.js +40 -0
- package/src/simple/room/Room.js +2 -2
- package/src/simple/room/SipRoom.js +1 -1
- package/src/simple/room/__tests__/Participant.test.js +81 -0
- package/src/types/WebSocketMessage.js +7 -1
- package/src/utils/__tests__/object.test.js +35 -0
- package/src/utils/__tests__/string.test.js +23 -0
- package/src/utils/object.js +15 -0
- package/src/utils/string.js +8 -0
- package/src/web-rtc-client.js +39 -22
- package/src/websocket-client.js +2 -0
package/lib/domain/Features.js
CHANGED
|
@@ -2633,6 +2633,70 @@ class ExternalApp {
|
|
|
2633
2633
|
|
|
2634
2634
|
//
|
|
2635
2635
|
|
|
2636
|
+
class MeetingAuthorization {
|
|
2637
|
+
|
|
2638
|
+
|
|
2639
|
+
|
|
2640
|
+
|
|
2641
|
+
|
|
2642
|
+
|
|
2643
|
+
constructor({
|
|
2644
|
+
meetingUuid,
|
|
2645
|
+
uuid,
|
|
2646
|
+
userUuid,
|
|
2647
|
+
userName,
|
|
2648
|
+
} = {}) {
|
|
2649
|
+
this.meetingUuid = meetingUuid;
|
|
2650
|
+
this.uuid = uuid;
|
|
2651
|
+
this.userUuid = userUuid;
|
|
2652
|
+
this.userName = userName;
|
|
2653
|
+
}
|
|
2654
|
+
|
|
2655
|
+
setStatus(status ) {
|
|
2656
|
+
this.status = status;
|
|
2657
|
+
}
|
|
2658
|
+
|
|
2659
|
+
getStatus() {
|
|
2660
|
+
return this.status;
|
|
2661
|
+
}
|
|
2662
|
+
|
|
2663
|
+
static parse(plain ) {
|
|
2664
|
+
const {
|
|
2665
|
+
meeting_uuid: meetingUuid,
|
|
2666
|
+
uuid,
|
|
2667
|
+
guest_uuid: userUuid,
|
|
2668
|
+
guest_name: userName,
|
|
2669
|
+
} = plain;
|
|
2670
|
+
|
|
2671
|
+
return new MeetingAuthorization({
|
|
2672
|
+
meetingUuid,
|
|
2673
|
+
uuid,
|
|
2674
|
+
userUuid,
|
|
2675
|
+
userName,
|
|
2676
|
+
});
|
|
2677
|
+
}
|
|
2678
|
+
|
|
2679
|
+
static parseMany(items ) {
|
|
2680
|
+
if (!items) {
|
|
2681
|
+
return [];
|
|
2682
|
+
}
|
|
2683
|
+
return items.map(MeetingAuthorization.parse);
|
|
2684
|
+
}
|
|
2685
|
+
}
|
|
2686
|
+
|
|
2687
|
+
//
|
|
2688
|
+
|
|
2689
|
+
|
|
2690
|
+
|
|
2691
|
+
|
|
2692
|
+
|
|
2693
|
+
|
|
2694
|
+
|
|
2695
|
+
|
|
2696
|
+
|
|
2697
|
+
|
|
2698
|
+
|
|
2699
|
+
|
|
2636
2700
|
|
|
2637
2701
|
|
|
2638
2702
|
|
|
@@ -2643,6 +2707,7 @@ class ExternalApp {
|
|
|
2643
2707
|
|
|
2644
2708
|
|
|
2645
2709
|
|
|
2710
|
+
|
|
2646
2711
|
|
|
2647
2712
|
|
|
2648
2713
|
class Meeting {
|
|
@@ -2657,6 +2722,8 @@ class Meeting {
|
|
|
2657
2722
|
|
|
2658
2723
|
|
|
2659
2724
|
|
|
2725
|
+
|
|
2726
|
+
|
|
2660
2727
|
|
|
2661
2728
|
static parse(plain ) {
|
|
2662
2729
|
return new Meeting({
|
|
@@ -2669,6 +2736,7 @@ class Meeting {
|
|
|
2669
2736
|
extension: plain.exten,
|
|
2670
2737
|
persistent: plain.persistent,
|
|
2671
2738
|
creationTime: moment__default['default'](plain.creation_time).toDate(),
|
|
2739
|
+
requireAuthorization: plain.require_authorization,
|
|
2672
2740
|
});
|
|
2673
2741
|
}
|
|
2674
2742
|
|
|
@@ -2693,6 +2761,7 @@ class Meeting {
|
|
|
2693
2761
|
extension,
|
|
2694
2762
|
persistent,
|
|
2695
2763
|
creationTime,
|
|
2764
|
+
requireAuthorization,
|
|
2696
2765
|
} = {}) {
|
|
2697
2766
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
2698
2767
|
this.uri = uri;
|
|
@@ -2703,6 +2772,7 @@ class Meeting {
|
|
|
2703
2772
|
this.extension = extension;
|
|
2704
2773
|
this.persistent = persistent;
|
|
2705
2774
|
this.creationTime = creationTime;
|
|
2775
|
+
this.requireAuthorization = requireAuthorization;
|
|
2706
2776
|
|
|
2707
2777
|
// Useful to compare instead of instanceof with minified code
|
|
2708
2778
|
this.type = 'Meeting';
|
|
@@ -2713,8 +2783,32 @@ class Meeting {
|
|
|
2713
2783
|
const [username, secret] = atob(this.guestSipAuthorization).split(':');
|
|
2714
2784
|
return { username, secret };
|
|
2715
2785
|
}
|
|
2786
|
+
|
|
2716
2787
|
}
|
|
2717
2788
|
|
|
2789
|
+
//
|
|
2790
|
+
|
|
2791
|
+
const camelToUnderscore = (key ) => {
|
|
2792
|
+
if (typeof key !== 'string') {
|
|
2793
|
+
throw new Error('Input is not a string');
|
|
2794
|
+
}
|
|
2795
|
+
return key.charAt(0).toLowerCase() + key.substring(1).replace(/([A-Z])/g, '_$1').toLowerCase();
|
|
2796
|
+
};
|
|
2797
|
+
|
|
2798
|
+
//
|
|
2799
|
+
|
|
2800
|
+
const convertKeysFromCamelToUnderscore = (args ) => {
|
|
2801
|
+
if (!args || typeof args !== 'object' || Array.isArray(args)) {
|
|
2802
|
+
throw new Error('Input is not an object');
|
|
2803
|
+
}
|
|
2804
|
+
|
|
2805
|
+
return Object.keys(args).reduce((acc, key) => {
|
|
2806
|
+
acc[camelToUnderscore(key)] = typeof args[key] === 'object' && !Array.isArray(args[key])
|
|
2807
|
+
? convertKeysFromCamelToUnderscore(args[key]) : args[key];
|
|
2808
|
+
return acc;
|
|
2809
|
+
}, {});
|
|
2810
|
+
};
|
|
2811
|
+
|
|
2718
2812
|
/* */
|
|
2719
2813
|
|
|
2720
2814
|
var confdMethods = (client , baseUrl ) => ({
|
|
@@ -2783,8 +2877,18 @@ var confdMethods = (client , baseUrl ) => ({
|
|
|
2783
2877
|
getMyMeetings: () =>
|
|
2784
2878
|
client.get(`${baseUrl}/users/me/meetings`).then(response => Meeting.parseMany(response.items)),
|
|
2785
2879
|
|
|
2786
|
-
createMyMeeting: (
|
|
2787
|
-
client
|
|
2880
|
+
createMyMeeting: (args ) =>
|
|
2881
|
+
client
|
|
2882
|
+
.post(`${baseUrl}/users/me/meetings`, convertKeysFromCamelToUnderscore(args))
|
|
2883
|
+
.then(Meeting.parse),
|
|
2884
|
+
|
|
2885
|
+
updateMyMeeting: (meetingUuid , data ) =>
|
|
2886
|
+
client.put(
|
|
2887
|
+
`${baseUrl}/users/me/meetings/${meetingUuid}`,
|
|
2888
|
+
convertKeysFromCamelToUnderscore(data),
|
|
2889
|
+
null,
|
|
2890
|
+
ApiRequester.successResponseParser,
|
|
2891
|
+
),
|
|
2788
2892
|
|
|
2789
2893
|
deleteMyMeeting: (meetingUuid ) =>
|
|
2790
2894
|
client.delete(`${baseUrl}/users/me/meetings/${meetingUuid}`, null),
|
|
@@ -2792,8 +2896,36 @@ var confdMethods = (client , baseUrl ) => ({
|
|
|
2792
2896
|
getMeeting: (meetingUuid ) =>
|
|
2793
2897
|
client.get(`${baseUrl}/meetings/${meetingUuid}`, null).then(Meeting.parse),
|
|
2794
2898
|
|
|
2899
|
+
meetingAuthorizations: (meetingUuid ) =>
|
|
2900
|
+
client.get(`${baseUrl}/users/me/meetings/${meetingUuid}/authorizations`, null).then(MeetingAuthorization.parseMany),
|
|
2901
|
+
|
|
2902
|
+
meetingAuthorizationReject: (meetingUuid , authorizationUuid ) =>
|
|
2903
|
+
client.put(
|
|
2904
|
+
`${baseUrl}/users/me/meetings/${meetingUuid}/authorizations/${authorizationUuid}/reject`,
|
|
2905
|
+
{},
|
|
2906
|
+
null,
|
|
2907
|
+
ApiRequester.successResponseParser,
|
|
2908
|
+
),
|
|
2909
|
+
|
|
2910
|
+
meetingAuthorizationAccept: (meetingUuid , authorizationUuid ) =>
|
|
2911
|
+
client.put(
|
|
2912
|
+
`${baseUrl}/users/me/meetings/${meetingUuid}/authorizations/${authorizationUuid}/accept`,
|
|
2913
|
+
{},
|
|
2914
|
+
null,
|
|
2915
|
+
ApiRequester.successResponseParser,
|
|
2916
|
+
),
|
|
2917
|
+
|
|
2795
2918
|
guestGetMeeting: (meetingUuid ) =>
|
|
2796
2919
|
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}`, null).then(Meeting.parse),
|
|
2920
|
+
|
|
2921
|
+
guestAuthorizationRequest: (userUuid , meetingUuid , username ) =>
|
|
2922
|
+
client
|
|
2923
|
+
.post(`${baseUrl}/guests/${userUuid}/meetings/${meetingUuid}/authorizations`, { guest_name: username })
|
|
2924
|
+
.then(MeetingAuthorization.parse),
|
|
2925
|
+
|
|
2926
|
+
guestAuthorizationCheck: (userUuid , meetingUuid , authorizationUuid ) =>
|
|
2927
|
+
client.get(`${baseUrl}/guests/${userUuid}/meetings/${meetingUuid}/authorizations/${authorizationUuid}`, null),
|
|
2928
|
+
|
|
2797
2929
|
});
|
|
2798
2930
|
|
|
2799
2931
|
//
|
|
@@ -4215,6 +4347,14 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
4215
4347
|
getMeetingParticipantsAsUser: async (meetingUuid ) =>
|
|
4216
4348
|
client.get(`${baseUrl}/users/me/meetings/${meetingUuid}/participants`),
|
|
4217
4349
|
|
|
4350
|
+
banMeetingParticipant: (meetingUuid , participantUuid ) =>
|
|
4351
|
+
client.delete(
|
|
4352
|
+
`${baseUrl}/users/me/meetings/${meetingUuid}/participants/${participantUuid}`,
|
|
4353
|
+
null,
|
|
4354
|
+
null,
|
|
4355
|
+
ApiRequester.successResponseParser,
|
|
4356
|
+
),
|
|
4357
|
+
|
|
4218
4358
|
listTrunks: () => client.get(`${baseUrl}/trunks`),
|
|
4219
4359
|
|
|
4220
4360
|
mute: (callId ) =>
|
package/lib/domain/Meeting.js
CHANGED
|
@@ -19,6 +19,17 @@ var newFrom = (instance , ToClass ) => {
|
|
|
19
19
|
|
|
20
20
|
//
|
|
21
21
|
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
22
33
|
|
|
23
34
|
|
|
24
35
|
|
|
@@ -29,6 +40,7 @@ var newFrom = (instance , ToClass ) => {
|
|
|
29
40
|
|
|
30
41
|
|
|
31
42
|
|
|
43
|
+
|
|
32
44
|
|
|
33
45
|
|
|
34
46
|
class Meeting {
|
|
@@ -43,6 +55,8 @@ class Meeting {
|
|
|
43
55
|
|
|
44
56
|
|
|
45
57
|
|
|
58
|
+
|
|
59
|
+
|
|
46
60
|
|
|
47
61
|
static parse(plain ) {
|
|
48
62
|
return new Meeting({
|
|
@@ -55,6 +69,7 @@ class Meeting {
|
|
|
55
69
|
extension: plain.exten,
|
|
56
70
|
persistent: plain.persistent,
|
|
57
71
|
creationTime: moment__default['default'](plain.creation_time).toDate(),
|
|
72
|
+
requireAuthorization: plain.require_authorization,
|
|
58
73
|
});
|
|
59
74
|
}
|
|
60
75
|
|
|
@@ -79,6 +94,7 @@ class Meeting {
|
|
|
79
94
|
extension,
|
|
80
95
|
persistent,
|
|
81
96
|
creationTime,
|
|
97
|
+
requireAuthorization,
|
|
82
98
|
} = {}) {
|
|
83
99
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
84
100
|
this.uri = uri;
|
|
@@ -89,6 +105,7 @@ class Meeting {
|
|
|
89
105
|
this.extension = extension;
|
|
90
106
|
this.persistent = persistent;
|
|
91
107
|
this.creationTime = creationTime;
|
|
108
|
+
this.requireAuthorization = requireAuthorization;
|
|
92
109
|
|
|
93
110
|
// Useful to compare instead of instanceof with minified code
|
|
94
111
|
this.type = 'Meeting';
|
|
@@ -99,6 +116,7 @@ class Meeting {
|
|
|
99
116
|
const [username, secret] = atob(this.guestSipAuthorization).split(':');
|
|
100
117
|
return { username, secret };
|
|
101
118
|
}
|
|
119
|
+
|
|
102
120
|
}
|
|
103
121
|
|
|
104
122
|
module.exports = Meeting;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
//
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
const PENDING = 'pending';
|
|
16
|
+
const ACCEPTED = 'accepted';
|
|
17
|
+
const REJECTED = 'rejected';
|
|
18
|
+
const POST_PROCESSING = 'post_processing';
|
|
19
|
+
const POST_PROCESSED_SUCCESS = 'post_processed_success';
|
|
20
|
+
const POST_PROCESSED_ERROR = 'post_processed_error';
|
|
21
|
+
|
|
22
|
+
class MeetingAuthorization {
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
constructor({
|
|
30
|
+
meetingUuid,
|
|
31
|
+
uuid,
|
|
32
|
+
userUuid,
|
|
33
|
+
userName,
|
|
34
|
+
} = {}) {
|
|
35
|
+
this.meetingUuid = meetingUuid;
|
|
36
|
+
this.uuid = uuid;
|
|
37
|
+
this.userUuid = userUuid;
|
|
38
|
+
this.userName = userName;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
setStatus(status ) {
|
|
42
|
+
this.status = status;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
getStatus() {
|
|
46
|
+
return this.status;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
static parse(plain ) {
|
|
50
|
+
const {
|
|
51
|
+
meeting_uuid: meetingUuid,
|
|
52
|
+
uuid,
|
|
53
|
+
guest_uuid: userUuid,
|
|
54
|
+
guest_name: userName,
|
|
55
|
+
} = plain;
|
|
56
|
+
|
|
57
|
+
return new MeetingAuthorization({
|
|
58
|
+
meetingUuid,
|
|
59
|
+
uuid,
|
|
60
|
+
userUuid,
|
|
61
|
+
userName,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
static parseMany(items ) {
|
|
66
|
+
if (!items) {
|
|
67
|
+
return [];
|
|
68
|
+
}
|
|
69
|
+
return items.map(MeetingAuthorization.parse);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
exports.ACCEPTED = ACCEPTED;
|
|
74
|
+
exports.PENDING = PENDING;
|
|
75
|
+
exports.POST_PROCESSED_ERROR = POST_PROCESSED_ERROR;
|
|
76
|
+
exports.POST_PROCESSED_SUCCESS = POST_PROCESSED_SUCCESS;
|
|
77
|
+
exports.POST_PROCESSING = POST_PROCESSING;
|
|
78
|
+
exports.REJECTED = REJECTED;
|
|
79
|
+
exports.default = MeetingAuthorization;
|
|
@@ -3600,6 +3600,70 @@ class ExternalApp {
|
|
|
3600
3600
|
|
|
3601
3601
|
//
|
|
3602
3602
|
|
|
3603
|
+
class MeetingAuthorization {
|
|
3604
|
+
|
|
3605
|
+
|
|
3606
|
+
|
|
3607
|
+
|
|
3608
|
+
|
|
3609
|
+
|
|
3610
|
+
constructor({
|
|
3611
|
+
meetingUuid,
|
|
3612
|
+
uuid,
|
|
3613
|
+
userUuid,
|
|
3614
|
+
userName,
|
|
3615
|
+
} = {}) {
|
|
3616
|
+
this.meetingUuid = meetingUuid;
|
|
3617
|
+
this.uuid = uuid;
|
|
3618
|
+
this.userUuid = userUuid;
|
|
3619
|
+
this.userName = userName;
|
|
3620
|
+
}
|
|
3621
|
+
|
|
3622
|
+
setStatus(status ) {
|
|
3623
|
+
this.status = status;
|
|
3624
|
+
}
|
|
3625
|
+
|
|
3626
|
+
getStatus() {
|
|
3627
|
+
return this.status;
|
|
3628
|
+
}
|
|
3629
|
+
|
|
3630
|
+
static parse(plain ) {
|
|
3631
|
+
const {
|
|
3632
|
+
meeting_uuid: meetingUuid,
|
|
3633
|
+
uuid,
|
|
3634
|
+
guest_uuid: userUuid,
|
|
3635
|
+
guest_name: userName,
|
|
3636
|
+
} = plain;
|
|
3637
|
+
|
|
3638
|
+
return new MeetingAuthorization({
|
|
3639
|
+
meetingUuid,
|
|
3640
|
+
uuid,
|
|
3641
|
+
userUuid,
|
|
3642
|
+
userName,
|
|
3643
|
+
});
|
|
3644
|
+
}
|
|
3645
|
+
|
|
3646
|
+
static parseMany(items ) {
|
|
3647
|
+
if (!items) {
|
|
3648
|
+
return [];
|
|
3649
|
+
}
|
|
3650
|
+
return items.map(MeetingAuthorization.parse);
|
|
3651
|
+
}
|
|
3652
|
+
}
|
|
3653
|
+
|
|
3654
|
+
//
|
|
3655
|
+
|
|
3656
|
+
|
|
3657
|
+
|
|
3658
|
+
|
|
3659
|
+
|
|
3660
|
+
|
|
3661
|
+
|
|
3662
|
+
|
|
3663
|
+
|
|
3664
|
+
|
|
3665
|
+
|
|
3666
|
+
|
|
3603
3667
|
|
|
3604
3668
|
|
|
3605
3669
|
|
|
@@ -3610,6 +3674,7 @@ class ExternalApp {
|
|
|
3610
3674
|
|
|
3611
3675
|
|
|
3612
3676
|
|
|
3677
|
+
|
|
3613
3678
|
|
|
3614
3679
|
|
|
3615
3680
|
class Meeting {
|
|
@@ -3624,6 +3689,8 @@ class Meeting {
|
|
|
3624
3689
|
|
|
3625
3690
|
|
|
3626
3691
|
|
|
3692
|
+
|
|
3693
|
+
|
|
3627
3694
|
|
|
3628
3695
|
static parse(plain ) {
|
|
3629
3696
|
return new Meeting({
|
|
@@ -3636,6 +3703,7 @@ class Meeting {
|
|
|
3636
3703
|
extension: plain.exten,
|
|
3637
3704
|
persistent: plain.persistent,
|
|
3638
3705
|
creationTime: moment__default['default'](plain.creation_time).toDate(),
|
|
3706
|
+
requireAuthorization: plain.require_authorization,
|
|
3639
3707
|
});
|
|
3640
3708
|
}
|
|
3641
3709
|
|
|
@@ -3660,6 +3728,7 @@ class Meeting {
|
|
|
3660
3728
|
extension,
|
|
3661
3729
|
persistent,
|
|
3662
3730
|
creationTime,
|
|
3731
|
+
requireAuthorization,
|
|
3663
3732
|
} = {}) {
|
|
3664
3733
|
this.guestSipAuthorization = guestSipAuthorization;
|
|
3665
3734
|
this.uri = uri;
|
|
@@ -3670,6 +3739,7 @@ class Meeting {
|
|
|
3670
3739
|
this.extension = extension;
|
|
3671
3740
|
this.persistent = persistent;
|
|
3672
3741
|
this.creationTime = creationTime;
|
|
3742
|
+
this.requireAuthorization = requireAuthorization;
|
|
3673
3743
|
|
|
3674
3744
|
// Useful to compare instead of instanceof with minified code
|
|
3675
3745
|
this.type = 'Meeting';
|
|
@@ -3680,8 +3750,32 @@ class Meeting {
|
|
|
3680
3750
|
const [username, secret] = atob(this.guestSipAuthorization).split(':');
|
|
3681
3751
|
return { username, secret };
|
|
3682
3752
|
}
|
|
3753
|
+
|
|
3683
3754
|
}
|
|
3684
3755
|
|
|
3756
|
+
//
|
|
3757
|
+
|
|
3758
|
+
const camelToUnderscore = (key ) => {
|
|
3759
|
+
if (typeof key !== 'string') {
|
|
3760
|
+
throw new Error('Input is not a string');
|
|
3761
|
+
}
|
|
3762
|
+
return key.charAt(0).toLowerCase() + key.substring(1).replace(/([A-Z])/g, '_$1').toLowerCase();
|
|
3763
|
+
};
|
|
3764
|
+
|
|
3765
|
+
//
|
|
3766
|
+
|
|
3767
|
+
const convertKeysFromCamelToUnderscore = (args ) => {
|
|
3768
|
+
if (!args || typeof args !== 'object' || Array.isArray(args)) {
|
|
3769
|
+
throw new Error('Input is not an object');
|
|
3770
|
+
}
|
|
3771
|
+
|
|
3772
|
+
return Object.keys(args).reduce((acc, key) => {
|
|
3773
|
+
acc[camelToUnderscore(key)] = typeof args[key] === 'object' && !Array.isArray(args[key])
|
|
3774
|
+
? convertKeysFromCamelToUnderscore(args[key]) : args[key];
|
|
3775
|
+
return acc;
|
|
3776
|
+
}, {});
|
|
3777
|
+
};
|
|
3778
|
+
|
|
3685
3779
|
/* */
|
|
3686
3780
|
|
|
3687
3781
|
var confdMethods = (client , baseUrl ) => ({
|
|
@@ -3750,8 +3844,18 @@ var confdMethods = (client , baseUrl ) => ({
|
|
|
3750
3844
|
getMyMeetings: () =>
|
|
3751
3845
|
client.get(`${baseUrl}/users/me/meetings`).then(response => Meeting.parseMany(response.items)),
|
|
3752
3846
|
|
|
3753
|
-
createMyMeeting: (
|
|
3754
|
-
client
|
|
3847
|
+
createMyMeeting: (args ) =>
|
|
3848
|
+
client
|
|
3849
|
+
.post(`${baseUrl}/users/me/meetings`, convertKeysFromCamelToUnderscore(args))
|
|
3850
|
+
.then(Meeting.parse),
|
|
3851
|
+
|
|
3852
|
+
updateMyMeeting: (meetingUuid , data ) =>
|
|
3853
|
+
client.put(
|
|
3854
|
+
`${baseUrl}/users/me/meetings/${meetingUuid}`,
|
|
3855
|
+
convertKeysFromCamelToUnderscore(data),
|
|
3856
|
+
null,
|
|
3857
|
+
ApiRequester.successResponseParser,
|
|
3858
|
+
),
|
|
3755
3859
|
|
|
3756
3860
|
deleteMyMeeting: (meetingUuid ) =>
|
|
3757
3861
|
client.delete(`${baseUrl}/users/me/meetings/${meetingUuid}`, null),
|
|
@@ -3759,8 +3863,36 @@ var confdMethods = (client , baseUrl ) => ({
|
|
|
3759
3863
|
getMeeting: (meetingUuid ) =>
|
|
3760
3864
|
client.get(`${baseUrl}/meetings/${meetingUuid}`, null).then(Meeting.parse),
|
|
3761
3865
|
|
|
3866
|
+
meetingAuthorizations: (meetingUuid ) =>
|
|
3867
|
+
client.get(`${baseUrl}/users/me/meetings/${meetingUuid}/authorizations`, null).then(MeetingAuthorization.parseMany),
|
|
3868
|
+
|
|
3869
|
+
meetingAuthorizationReject: (meetingUuid , authorizationUuid ) =>
|
|
3870
|
+
client.put(
|
|
3871
|
+
`${baseUrl}/users/me/meetings/${meetingUuid}/authorizations/${authorizationUuid}/reject`,
|
|
3872
|
+
{},
|
|
3873
|
+
null,
|
|
3874
|
+
ApiRequester.successResponseParser,
|
|
3875
|
+
),
|
|
3876
|
+
|
|
3877
|
+
meetingAuthorizationAccept: (meetingUuid , authorizationUuid ) =>
|
|
3878
|
+
client.put(
|
|
3879
|
+
`${baseUrl}/users/me/meetings/${meetingUuid}/authorizations/${authorizationUuid}/accept`,
|
|
3880
|
+
{},
|
|
3881
|
+
null,
|
|
3882
|
+
ApiRequester.successResponseParser,
|
|
3883
|
+
),
|
|
3884
|
+
|
|
3762
3885
|
guestGetMeeting: (meetingUuid ) =>
|
|
3763
3886
|
client.get(`${baseUrl}/guests/me/meetings/${meetingUuid}`, null).then(Meeting.parse),
|
|
3887
|
+
|
|
3888
|
+
guestAuthorizationRequest: (userUuid , meetingUuid , username ) =>
|
|
3889
|
+
client
|
|
3890
|
+
.post(`${baseUrl}/guests/${userUuid}/meetings/${meetingUuid}/authorizations`, { guest_name: username })
|
|
3891
|
+
.then(MeetingAuthorization.parse),
|
|
3892
|
+
|
|
3893
|
+
guestAuthorizationCheck: (userUuid , meetingUuid , authorizationUuid ) =>
|
|
3894
|
+
client.get(`${baseUrl}/guests/${userUuid}/meetings/${meetingUuid}/authorizations/${authorizationUuid}`, null),
|
|
3895
|
+
|
|
3764
3896
|
});
|
|
3765
3897
|
|
|
3766
3898
|
//
|
|
@@ -4629,6 +4761,14 @@ var calldMethods = (client , baseUrl ) => ({
|
|
|
4629
4761
|
getMeetingParticipantsAsUser: async (meetingUuid ) =>
|
|
4630
4762
|
client.get(`${baseUrl}/users/me/meetings/${meetingUuid}/participants`),
|
|
4631
4763
|
|
|
4764
|
+
banMeetingParticipant: (meetingUuid , participantUuid ) =>
|
|
4765
|
+
client.delete(
|
|
4766
|
+
`${baseUrl}/users/me/meetings/${meetingUuid}/participants/${participantUuid}`,
|
|
4767
|
+
null,
|
|
4768
|
+
null,
|
|
4769
|
+
ApiRequester.successResponseParser,
|
|
4770
|
+
),
|
|
4771
|
+
|
|
4632
4772
|
listTrunks: () => client.get(`${baseUrl}/trunks`),
|
|
4633
4773
|
|
|
4634
4774
|
mute: (callId ) =>
|