@jibb-open/jssdk 3.17.6 → 3.18.1
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/api/auth.js +126 -1
- package/api/cisco.js +37 -1
- package/api/eventbus.js +150 -1
- package/api/index.js +21 -1
- package/api/meeting.js +332 -1
- package/api/recording.js +55 -1
- package/api/user.js +24 -1
- package/api/webexbot.js +23 -1
- package/api/whiteboard.js +116 -1
- package/config.js +9 -1
- package/package.json +3 -1
- package/types/exceptions.js +68 -1
- package/types/jibb.pb.js +7067 -1
- package/types/proto.js +5 -1
- package/types/types.js +167 -1
- package/utils/cached_variable.js +18 -1
- package/utils/future.js +24 -1
- package/utils/http/http.axios.js +38 -1
- package/utils/http/index.js +9 -1
- package/utils/index.js +4 -1
- package/utils/logger/index.js +9 -1
- package/utils/logger/logger.empty.js +9 -1
- package/utils/logger/logger.pino.js +12 -1
- package/ws/connection_base.js +125 -1
- package/ws/eventbus.js +293 -1
- package/ws/index.js +11 -1
- package/ws/ipsa.js +161 -1
- package/ws/meeting.js +179 -1
- package/ws/observable_connection.js +91 -1
- package/ws/retry_connection.js +107 -1
package/api/meeting.js
CHANGED
|
@@ -1 +1,332 @@
|
|
|
1
|
-
|
|
1
|
+
import "core-js/modules/es.json.stringify.js";
|
|
2
|
+
import "core-js/modules/es.promise.js";
|
|
3
|
+
import { Config } from "../config.js";
|
|
4
|
+
import { getUserToken } from "./auth.js";
|
|
5
|
+
import { logger } from "../utils/logger/index.js";
|
|
6
|
+
import { InvalidArgumentError, NotFoundError, PermissionDeniedError } from "../types/exceptions.js";
|
|
7
|
+
import { http } from "../utils/http/index.js";
|
|
8
|
+
import { UserClaims, MeetingClaims, MeetingTypes } from "../types/types.js";
|
|
9
|
+
export async function createMeeting(_ref) {
|
|
10
|
+
let {
|
|
11
|
+
title,
|
|
12
|
+
isTemporary,
|
|
13
|
+
capacity,
|
|
14
|
+
meetingType
|
|
15
|
+
} = _ref;
|
|
16
|
+
let headers = {
|
|
17
|
+
"Content-Type": "application/json",
|
|
18
|
+
Accept: "application/json",
|
|
19
|
+
"x-jibb-user-jwt": await getUserToken()
|
|
20
|
+
};
|
|
21
|
+
let body = {
|
|
22
|
+
title: title || "",
|
|
23
|
+
isTemporary: isTemporary || false,
|
|
24
|
+
capacity: capacity || 2,
|
|
25
|
+
meetingType: meetingType || MeetingTypes.DEFAULT
|
|
26
|
+
};
|
|
27
|
+
let response = await http.post("".concat(Config.apiBaseURL, "/v1/meetings"), body, headers);
|
|
28
|
+
return response.data.meetingId;
|
|
29
|
+
}
|
|
30
|
+
export async function createTemporaryShare(_ref2) {
|
|
31
|
+
let {
|
|
32
|
+
meetingId,
|
|
33
|
+
permission,
|
|
34
|
+
expiry,
|
|
35
|
+
auxData
|
|
36
|
+
} = _ref2;
|
|
37
|
+
let headers = {
|
|
38
|
+
"Content-Type": "application/json",
|
|
39
|
+
Accept: "application/json",
|
|
40
|
+
"x-jibb-user-jwt": await getUserToken()
|
|
41
|
+
};
|
|
42
|
+
let body = {
|
|
43
|
+
permission: permission,
|
|
44
|
+
expiry: {
|
|
45
|
+
seconds: expiry || 3600
|
|
46
|
+
},
|
|
47
|
+
auxilary: auxData || {}
|
|
48
|
+
};
|
|
49
|
+
let response = await http.post("".concat(Config.apiBaseURL, "/v1/meetings/").concat(meetingId, "/temp-shares"), body, headers);
|
|
50
|
+
return response.data.shareId;
|
|
51
|
+
}
|
|
52
|
+
export async function getMeetingTokenFromTempShareId(_ref3) {
|
|
53
|
+
let {
|
|
54
|
+
meetingId,
|
|
55
|
+
shareId
|
|
56
|
+
} = _ref3;
|
|
57
|
+
let headers = {
|
|
58
|
+
"Content-Type": "application/json",
|
|
59
|
+
Accept: "application/json"
|
|
60
|
+
};
|
|
61
|
+
let response = await http.get("".concat(Config.apiBaseURL, "/v1/meetings/").concat(meetingId, "/temp-shares/").concat(shareId), headers);
|
|
62
|
+
return response.data.token;
|
|
63
|
+
}
|
|
64
|
+
export async function deleteMeetingImages(_ref4) {
|
|
65
|
+
let {
|
|
66
|
+
meetingId,
|
|
67
|
+
mtoken
|
|
68
|
+
} = _ref4;
|
|
69
|
+
let headers = {
|
|
70
|
+
"Content-Type": "application/json",
|
|
71
|
+
Accept: "application/json",
|
|
72
|
+
"x-jibb-user-jwt": await getUserToken(),
|
|
73
|
+
"x-jibb-meeting-jwt": mtoken
|
|
74
|
+
};
|
|
75
|
+
return http.delete("".concat(Config.apiBaseURL, "/v1/meetings/").concat(meetingId, "/images"), headers);
|
|
76
|
+
}
|
|
77
|
+
export async function getMeetingImages(_ref5) {
|
|
78
|
+
let {
|
|
79
|
+
meetingId,
|
|
80
|
+
meetingToken
|
|
81
|
+
} = _ref5;
|
|
82
|
+
let headers = {
|
|
83
|
+
"Content-Type": "application/json",
|
|
84
|
+
Accept: "application/json",
|
|
85
|
+
"x-jibb-user-jwt": await getUserToken(),
|
|
86
|
+
"x-jibb-meeting-jwt": meetingToken
|
|
87
|
+
};
|
|
88
|
+
let response = await http.get("".concat(Config.apiBaseURL, "/v1/meetings/").concat(meetingId, "/images"), headers);
|
|
89
|
+
return response.data;
|
|
90
|
+
}
|
|
91
|
+
export async function getMeetingImage(_ref6) {
|
|
92
|
+
let {
|
|
93
|
+
meetingId,
|
|
94
|
+
meetingToken,
|
|
95
|
+
imageId
|
|
96
|
+
} = _ref6;
|
|
97
|
+
let headers = {
|
|
98
|
+
"Content-Type": "application/json",
|
|
99
|
+
Accept: "application/json",
|
|
100
|
+
"x-jibb-user-jwt": await getUserToken(),
|
|
101
|
+
"x-jibb-meeting-jwt": meetingToken
|
|
102
|
+
};
|
|
103
|
+
let response = await http.get("".concat(Config.apiBaseURL, "/v1/meetings/").concat(meetingId, "/images/").concat(imageId), headers);
|
|
104
|
+
return response.data;
|
|
105
|
+
}
|
|
106
|
+
export async function startMeeting(_ref7) {
|
|
107
|
+
let {
|
|
108
|
+
meetingId,
|
|
109
|
+
meetingToken
|
|
110
|
+
} = _ref7;
|
|
111
|
+
let headers = {
|
|
112
|
+
"Content-Type": "application/json",
|
|
113
|
+
Accept: "application/json",
|
|
114
|
+
"x-jibb-meeting-jwt": meetingToken
|
|
115
|
+
};
|
|
116
|
+
try {
|
|
117
|
+
let body = {};
|
|
118
|
+
return await http.post("".concat(Config.apiBaseURL, "/v1/meetings/").concat(meetingId, "/actions/start"), body, headers);
|
|
119
|
+
} catch (e) {
|
|
120
|
+
var _e$response;
|
|
121
|
+
if ((e === null || e === void 0 || (_e$response = e.response) === null || _e$response === void 0 ? void 0 : _e$response.status) == 404) throw new NotFoundError();else throw e;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
export async function endMeeting(_ref8) {
|
|
125
|
+
let {
|
|
126
|
+
meetingId,
|
|
127
|
+
meetingToken
|
|
128
|
+
} = _ref8;
|
|
129
|
+
let headers = {
|
|
130
|
+
"Content-Type": "application/json",
|
|
131
|
+
Accept: "application/json",
|
|
132
|
+
"x-jibb-meeting-jwt": meetingToken
|
|
133
|
+
};
|
|
134
|
+
let body = {};
|
|
135
|
+
return http.post("".concat(Config.apiBaseURL, "/v1/meetings/").concat(meetingId, "/actions/end"), body, headers);
|
|
136
|
+
}
|
|
137
|
+
export async function deleteMeeting(meetingId) {
|
|
138
|
+
let headers = {
|
|
139
|
+
"Content-Type": "application/json",
|
|
140
|
+
Accept: "application/json",
|
|
141
|
+
"x-jibb-user-jwt": await getUserToken()
|
|
142
|
+
};
|
|
143
|
+
return http.delete("".concat(Config.apiBaseURL, "/v1/meetings/").concat(meetingId), headers);
|
|
144
|
+
}
|
|
145
|
+
export async function getMeetingToken(_ref9) {
|
|
146
|
+
let {
|
|
147
|
+
meetingId,
|
|
148
|
+
permission,
|
|
149
|
+
expiry = 3600
|
|
150
|
+
} = _ref9;
|
|
151
|
+
let userToken;
|
|
152
|
+
try {
|
|
153
|
+
userToken = await getUserToken();
|
|
154
|
+
} catch (err) {
|
|
155
|
+
logger.error({
|
|
156
|
+
err
|
|
157
|
+
});
|
|
158
|
+
throw new PermissionDeniedError("user is not authenticated");
|
|
159
|
+
}
|
|
160
|
+
try {
|
|
161
|
+
let headers = {
|
|
162
|
+
"Content-Type": "application/json",
|
|
163
|
+
Accept: "application/json",
|
|
164
|
+
"x-jibb-user-jwt": userToken
|
|
165
|
+
};
|
|
166
|
+
let body = {
|
|
167
|
+
permission: permission,
|
|
168
|
+
expiry: {
|
|
169
|
+
seconds: expiry
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
let response = await http.post("".concat(Config.apiBaseURL, "/v1/meetings/").concat(meetingId, "/token"), body, headers);
|
|
173
|
+
return response.data.token;
|
|
174
|
+
} catch (err) {
|
|
175
|
+
var _err$response;
|
|
176
|
+
if ((err === null || err === void 0 || (_err$response = err.response) === null || _err$response === void 0 ? void 0 : _err$response.status) == 404) throw new NotFoundError("meeting not found");else throw err;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
export async function getMeetingList(pagination) {
|
|
180
|
+
let headers = {
|
|
181
|
+
"Content-Type": "application/json",
|
|
182
|
+
Accept: "application/json",
|
|
183
|
+
"x-jibb-user-jwt": await getUserToken()
|
|
184
|
+
};
|
|
185
|
+
if (pagination !== undefined) headers["x-jibb-pagination"] = JSON.stringify(pagination);
|
|
186
|
+
let response = await http.get("".concat(Config.apiBaseURL, "/v1/meetings"), headers);
|
|
187
|
+
pagination = response.headers["x-jibb-pagination"];
|
|
188
|
+
pagination = pagination && JSON.parse(pagination);
|
|
189
|
+
return {
|
|
190
|
+
meetings: response.data.meetings,
|
|
191
|
+
pagination: pagination
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
export async function getMeetingDetails(meetingId) {
|
|
195
|
+
let headers = {
|
|
196
|
+
"Content-Type": "application/json",
|
|
197
|
+
Accept: "application/json",
|
|
198
|
+
"x-jibb-user-jwt": await getUserToken()
|
|
199
|
+
};
|
|
200
|
+
let response = await http.get("".concat(Config.apiBaseURL, "/v1/meetings/").concat(meetingId), headers);
|
|
201
|
+
return response.data;
|
|
202
|
+
}
|
|
203
|
+
export async function updateMeeting(_ref10) {
|
|
204
|
+
let {
|
|
205
|
+
meetingId,
|
|
206
|
+
title,
|
|
207
|
+
capacity
|
|
208
|
+
} = _ref10;
|
|
209
|
+
let headers = {
|
|
210
|
+
"Content-Type": "application/json",
|
|
211
|
+
Accept: "application/json",
|
|
212
|
+
"x-jibb-user-jwt": await getUserToken()
|
|
213
|
+
};
|
|
214
|
+
let body = {};
|
|
215
|
+
if (title) {
|
|
216
|
+
body["title"] = title;
|
|
217
|
+
}
|
|
218
|
+
if (capacity) {
|
|
219
|
+
body["capacity"] = capacity;
|
|
220
|
+
}
|
|
221
|
+
return http.post("".concat(Config.apiBaseURL, "/v1/meetings/").concat(meetingId), body, headers);
|
|
222
|
+
}
|
|
223
|
+
export async function isMeetingOwner(meetingToken) {
|
|
224
|
+
try {
|
|
225
|
+
let meetingClaims = new MeetingClaims(meetingToken);
|
|
226
|
+
let userClaims = new UserClaims(await getUserToken());
|
|
227
|
+
return userClaims.userId === meetingClaims.ownerId;
|
|
228
|
+
} catch (err) {
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
export async function createShare(_ref11) {
|
|
233
|
+
let {
|
|
234
|
+
email,
|
|
235
|
+
meetingId,
|
|
236
|
+
permission,
|
|
237
|
+
meetingToken
|
|
238
|
+
} = _ref11;
|
|
239
|
+
let headers = {
|
|
240
|
+
"Content-Type": "application/json",
|
|
241
|
+
Accept: "application/json",
|
|
242
|
+
"x-jibb-user-jwt": await getUserToken(),
|
|
243
|
+
"x-jibb-meeting-jwt": meetingToken
|
|
244
|
+
};
|
|
245
|
+
let body = {
|
|
246
|
+
email: email,
|
|
247
|
+
permission: permission
|
|
248
|
+
};
|
|
249
|
+
let response = await http.post("".concat(Config.apiBaseURL, "/v1/meetings/").concat(meetingId, "/shares"), body, headers);
|
|
250
|
+
return response.data;
|
|
251
|
+
}
|
|
252
|
+
export async function getIncomingShares() {
|
|
253
|
+
let headers = {
|
|
254
|
+
"Content-Type": "application/json",
|
|
255
|
+
Accept: "application/json",
|
|
256
|
+
"x-jibb-user-jwt": await getUserToken()
|
|
257
|
+
};
|
|
258
|
+
let response = await http.get("".concat(Config.apiBaseURL, "/v1/meetings/shares?incoming=true"), headers);
|
|
259
|
+
return response.data.shares;
|
|
260
|
+
}
|
|
261
|
+
export async function getOutgoingShares() {
|
|
262
|
+
let headers = {
|
|
263
|
+
"Content-Type": "application/json",
|
|
264
|
+
Accept: "application/json",
|
|
265
|
+
"x-jibb-user-jwt": await getUserToken()
|
|
266
|
+
};
|
|
267
|
+
let response = await http.get("".concat(Config.apiBaseURL, "/v1/meetings/shares?outgoing=true"), headers);
|
|
268
|
+
return response.data.shares;
|
|
269
|
+
}
|
|
270
|
+
export async function deleteShare(shareId) {
|
|
271
|
+
let headers = {
|
|
272
|
+
"Content-Type": "application/json",
|
|
273
|
+
Accept: "application/json",
|
|
274
|
+
"x-jibb-user-jwt": await getUserToken()
|
|
275
|
+
};
|
|
276
|
+
return http.delete("".concat(Config.apiBaseURL, "/v1/meetings/shares/").concat(shareId), headers);
|
|
277
|
+
}
|
|
278
|
+
export async function updateShare(_ref12) {
|
|
279
|
+
let {
|
|
280
|
+
shareId,
|
|
281
|
+
permission
|
|
282
|
+
} = _ref12;
|
|
283
|
+
let headers = {
|
|
284
|
+
"Content-Type": "application/json",
|
|
285
|
+
Accept: "application/json",
|
|
286
|
+
"x-jibb-user-jwt": await getUserToken()
|
|
287
|
+
};
|
|
288
|
+
let body = {
|
|
289
|
+
permission: permission
|
|
290
|
+
};
|
|
291
|
+
return http.patch("".concat(Config.apiBaseURL, "/v1/meetings/shares/").concat(shareId), body, headers);
|
|
292
|
+
}
|
|
293
|
+
export async function createShortUrl(_ref13) {
|
|
294
|
+
let {
|
|
295
|
+
meetingToken,
|
|
296
|
+
url
|
|
297
|
+
} = _ref13;
|
|
298
|
+
let headers = {
|
|
299
|
+
"Content-Type": "application/json",
|
|
300
|
+
Accept: "application/json",
|
|
301
|
+
"x-jibb-user-jwt": await getUserToken(),
|
|
302
|
+
"x-jibb-meeting-jwt": meetingToken
|
|
303
|
+
};
|
|
304
|
+
let body = {
|
|
305
|
+
url: url
|
|
306
|
+
};
|
|
307
|
+
let response = await http.post("".concat(Config.apiBaseURL, "/v1/meetings/url-shortener"), body, headers);
|
|
308
|
+
return response.data;
|
|
309
|
+
}
|
|
310
|
+
export async function getFullUrl(hashKey) {
|
|
311
|
+
let headers = {
|
|
312
|
+
"Content-Type": "application/json",
|
|
313
|
+
Accept: "application/json"
|
|
314
|
+
};
|
|
315
|
+
let response = await http.get("".concat(Config.apiBaseURL, "/v1/meetings/url-shortener/").concat(hashKey), headers);
|
|
316
|
+
return response.data.fullUrl;
|
|
317
|
+
}
|
|
318
|
+
export async function authorizeShortMeeting(_ref14) {
|
|
319
|
+
let {
|
|
320
|
+
hashKey,
|
|
321
|
+
password
|
|
322
|
+
} = _ref14;
|
|
323
|
+
let headers = {
|
|
324
|
+
"Content-Type": "application/json",
|
|
325
|
+
Accept: "application/json"
|
|
326
|
+
};
|
|
327
|
+
let body = {
|
|
328
|
+
password: password
|
|
329
|
+
};
|
|
330
|
+
let response = await http.post("".concat(Config.apiBaseURL, "/v1/meetings/url-shortener/auth/").concat(hashKey), body, headers);
|
|
331
|
+
return response.status == 200 ? true : false;
|
|
332
|
+
}
|
package/api/recording.js
CHANGED
|
@@ -1 +1,55 @@
|
|
|
1
|
-
|
|
1
|
+
import "core-js/modules/es.promise.js";
|
|
2
|
+
import { Config } from "../config.js";
|
|
3
|
+
import { getUserToken } from "./auth.js";
|
|
4
|
+
import { http } from "../utils/http/index.js";
|
|
5
|
+
export function startRecording() {
|
|
6
|
+
try {
|
|
7
|
+
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
8
|
+
meetingToken,
|
|
9
|
+
interval,
|
|
10
|
+
sensivityLevel,
|
|
11
|
+
alternativeEmail
|
|
12
|
+
};
|
|
13
|
+
return async function () {
|
|
14
|
+
let meetingToken = options.meetingToken;
|
|
15
|
+
let interval = (options === null || options === void 0 ? void 0 : options.interval) || 0;
|
|
16
|
+
let sensivityLevel = (options === null || options === void 0 ? void 0 : options.sensivityLevel) || 0;
|
|
17
|
+
let altEmail = (options === null || options === void 0 ? void 0 : options.alternativeEmail) || "";
|
|
18
|
+
let headers = {
|
|
19
|
+
"Content-Type": "application/json",
|
|
20
|
+
Accept: "application/json",
|
|
21
|
+
"x-jibb-user-jwt": await getUserToken(),
|
|
22
|
+
"x-jibb-meeting-jwt": meetingToken
|
|
23
|
+
};
|
|
24
|
+
let body = {
|
|
25
|
+
write_interval: interval,
|
|
26
|
+
level: sensivityLevel,
|
|
27
|
+
alternative_email: altEmail
|
|
28
|
+
};
|
|
29
|
+
let response = await http.post("".concat(Config.apiBaseURL, "/v1/meetings/recordings/start"), body, headers);
|
|
30
|
+
return response.data;
|
|
31
|
+
}();
|
|
32
|
+
} catch (e) {
|
|
33
|
+
return Promise.reject(e);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export async function stopRecording() {
|
|
37
|
+
let headers = {
|
|
38
|
+
"Content-Type": "application/json",
|
|
39
|
+
Accept: "application/json",
|
|
40
|
+
"x-jibb-user-jwt": await getUserToken()
|
|
41
|
+
};
|
|
42
|
+
let body = {};
|
|
43
|
+
let response = await http.post("".concat(Config.apiBaseURL, "/v1/meetings/recordings/stop"), body, headers);
|
|
44
|
+
return response.data;
|
|
45
|
+
}
|
|
46
|
+
export async function takeSnapshot() {
|
|
47
|
+
let headers = {
|
|
48
|
+
"Content-Type": "application/json",
|
|
49
|
+
Accept: "application/json",
|
|
50
|
+
"x-jibb-user-jwt": await getUserToken()
|
|
51
|
+
};
|
|
52
|
+
let body = {};
|
|
53
|
+
let response = await http.post("".concat(Config.apiBaseURL, "/v1/meetings/recordings/snapshot"), body, headers);
|
|
54
|
+
return response.data;
|
|
55
|
+
}
|
package/api/user.js
CHANGED
|
@@ -1 +1,24 @@
|
|
|
1
|
-
|
|
1
|
+
import "core-js/modules/es.promise.js";
|
|
2
|
+
import { Config } from "../config.js";
|
|
3
|
+
import { getUserToken } from "./auth.js";
|
|
4
|
+
import { http } from "../utils/http/index.js";
|
|
5
|
+
export async function getUserInfo() {
|
|
6
|
+
let headers = {
|
|
7
|
+
"Content-Type": "application/json",
|
|
8
|
+
Accept: "application/json",
|
|
9
|
+
"x-jibb-user-jwt": await getUserToken()
|
|
10
|
+
};
|
|
11
|
+
let response = await http.get("".concat(Config.apiBaseURL, "/v1/users/me"), headers);
|
|
12
|
+
return response.data;
|
|
13
|
+
}
|
|
14
|
+
export async function activateUser(orgId) {
|
|
15
|
+
let headers = {
|
|
16
|
+
"Content-Type": "application/json",
|
|
17
|
+
Accept: "application/json",
|
|
18
|
+
"x-jibb-user-jwt": await getUserToken()
|
|
19
|
+
};
|
|
20
|
+
let body = {
|
|
21
|
+
organizationId: orgId
|
|
22
|
+
};
|
|
23
|
+
return http.post("".concat(Config.apiBaseURL, "/v1/users/activate"), body, headers);
|
|
24
|
+
}
|
package/api/webexbot.js
CHANGED
|
@@ -1 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
import "core-js/modules/es.promise.js";
|
|
2
|
+
import { Config } from '../config.js';
|
|
3
|
+
import { http } from "../utils/http/index.js";
|
|
4
|
+
export async function shareImage(_ref) {
|
|
5
|
+
let {
|
|
6
|
+
meetingToken,
|
|
7
|
+
message,
|
|
8
|
+
data,
|
|
9
|
+
mimeType
|
|
10
|
+
} = _ref;
|
|
11
|
+
let headers = {
|
|
12
|
+
"Content-Type": "application/json",
|
|
13
|
+
Accept: "application/json",
|
|
14
|
+
"x-jibb-meeting-jwt": meetingToken
|
|
15
|
+
};
|
|
16
|
+
let body = {
|
|
17
|
+
message: message,
|
|
18
|
+
data: data,
|
|
19
|
+
mimeType: mimeType
|
|
20
|
+
};
|
|
21
|
+
let response = await http.post("".concat(Config.apiBaseURL, "/v1/webexbot/message"), body, headers);
|
|
22
|
+
return response.data;
|
|
23
|
+
}
|
package/api/whiteboard.js
CHANGED
|
@@ -1 +1,116 @@
|
|
|
1
|
-
|
|
1
|
+
import "core-js/modules/es.promise.js";
|
|
2
|
+
import "core-js/modules/web.dom-collections.iterator.js";
|
|
3
|
+
import { Config } from "../config.js";
|
|
4
|
+
import { http } from "../utils/http/index.js";
|
|
5
|
+
export class Whiteboard {
|
|
6
|
+
constructor(meetingId, meetingToken) {
|
|
7
|
+
this.meetingId = meetingId;
|
|
8
|
+
this.meetingToken = meetingToken;
|
|
9
|
+
}
|
|
10
|
+
async saveImage(_ref) {
|
|
11
|
+
let {
|
|
12
|
+
image,
|
|
13
|
+
type
|
|
14
|
+
} = _ref;
|
|
15
|
+
type = type || "";
|
|
16
|
+
switch (type.toLowerCase()) {
|
|
17
|
+
case "jpeg":
|
|
18
|
+
type = "IMAGE_JPEG";
|
|
19
|
+
break;
|
|
20
|
+
case "webp":
|
|
21
|
+
type = "IMAGE_WEBP";
|
|
22
|
+
break;
|
|
23
|
+
default:
|
|
24
|
+
type = "";
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
let headers = {
|
|
28
|
+
"Content-Type": "image/jpeg",
|
|
29
|
+
Accept: "application/json",
|
|
30
|
+
"x-jibb-meeting-jwt": this.meetingToken
|
|
31
|
+
};
|
|
32
|
+
let body = {
|
|
33
|
+
image: image,
|
|
34
|
+
type: type
|
|
35
|
+
};
|
|
36
|
+
let response = await http.post("".concat(Config.apiBaseURL, "/v1/meetings/").concat(this.meetingId, "/whiteboard/images"), body, headers);
|
|
37
|
+
return response.data.imageName;
|
|
38
|
+
}
|
|
39
|
+
async getImageList() {
|
|
40
|
+
let headers = {
|
|
41
|
+
"Content-Type": "application/json",
|
|
42
|
+
Accept: "application/json",
|
|
43
|
+
"x-jibb-meeting-jwt": this.meetingToken
|
|
44
|
+
};
|
|
45
|
+
let response = await http.get("".concat(Config.apiBaseURL, "/v1/meetings/").concat(this.meetingId, "/whiteboard/images"), headers);
|
|
46
|
+
return response.data.imagesName;
|
|
47
|
+
}
|
|
48
|
+
async getImage(imageName) {
|
|
49
|
+
let headers = {
|
|
50
|
+
"Content-Type": "application/json",
|
|
51
|
+
Accept: "image/jpeg",
|
|
52
|
+
"x-jibb-meeting-jwt": this.meetingToken
|
|
53
|
+
};
|
|
54
|
+
let url = "".concat(Config.apiBaseURL, "/v1/meetings/").concat(this.meetingId, "/whiteboard/images/").concat(imageName);
|
|
55
|
+
let response = await http.get(url, headers, {
|
|
56
|
+
responseType: "arraybuffer"
|
|
57
|
+
});
|
|
58
|
+
return response.data;
|
|
59
|
+
}
|
|
60
|
+
async getImages() {
|
|
61
|
+
let imageList = [];
|
|
62
|
+
let imageNameList = await this.getImageList();
|
|
63
|
+
for (const imageName of imageNameList) {
|
|
64
|
+
let headers = {
|
|
65
|
+
"Content-Type": "application/json",
|
|
66
|
+
Accept: "application/json",
|
|
67
|
+
"x-jibb-meeting-jwt": this.meetingToken
|
|
68
|
+
};
|
|
69
|
+
let response = await http.get("".concat(Config.apiBaseURL, "/v1/meetings/").concat(this.meetingId, "/whiteboard/images/").concat(imageName), {
|
|
70
|
+
headers
|
|
71
|
+
});
|
|
72
|
+
imageList.push({
|
|
73
|
+
imageName: imageName,
|
|
74
|
+
data: response.data
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return imageList;
|
|
78
|
+
}
|
|
79
|
+
async deleteImage(imageName) {
|
|
80
|
+
let headers = {
|
|
81
|
+
"Content-Type": "application/json",
|
|
82
|
+
Accept: "application/json",
|
|
83
|
+
"x-jibb-meeting-jwt": this.meetingToken
|
|
84
|
+
};
|
|
85
|
+
return http.delete("".concat(Config.apiBaseURL, "/v1/meetings/").concat(this.meetingId, "/whiteboard/images/").concat(imageName), headers);
|
|
86
|
+
}
|
|
87
|
+
async saveBoard(board) {
|
|
88
|
+
let headers = {
|
|
89
|
+
"Content-Type": "application/json",
|
|
90
|
+
Accept: "application/json",
|
|
91
|
+
"x-jibb-meeting-jwt": this.meetingToken
|
|
92
|
+
};
|
|
93
|
+
let body = {
|
|
94
|
+
board: board
|
|
95
|
+
};
|
|
96
|
+
let response = await http.post("".concat(Config.apiBaseURL, "/v1/meetings/").concat(this.meetingId, "/whiteboard"), body, headers);
|
|
97
|
+
return response.data;
|
|
98
|
+
}
|
|
99
|
+
async getBoard() {
|
|
100
|
+
let headers = {
|
|
101
|
+
"Content-Type": "application/json",
|
|
102
|
+
Accept: "image/jpeg",
|
|
103
|
+
"x-jibb-meeting-jwt": this.meetingToken
|
|
104
|
+
};
|
|
105
|
+
let response = await http.get("".concat(Config.apiBaseURL, "/v1/meetings/").concat(this.meetingId, "/whiteboard"), headers);
|
|
106
|
+
return response.data;
|
|
107
|
+
}
|
|
108
|
+
async deleteBoard() {
|
|
109
|
+
let headers = {
|
|
110
|
+
"Content-Type": "application/json",
|
|
111
|
+
Accept: "application/json",
|
|
112
|
+
"x-jibb-meeting-jwt": this.meetingToken
|
|
113
|
+
};
|
|
114
|
+
return http.delete("".concat(Config.apiBaseURL, "/v1/meetings/").concat(this.meetingId, "/whiteboard"), headers);
|
|
115
|
+
}
|
|
116
|
+
}
|
package/config.js
CHANGED
|
@@ -1 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
class ConfigClass {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.apiBaseURL = process.env.API_BASE_URL || "https://api.jibb.ai";
|
|
4
|
+
}
|
|
5
|
+
setApiBaseURL(url) {
|
|
6
|
+
this.apiBaseURL = url;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export let Config = new ConfigClass();
|
package/package.json
CHANGED