bigbluebutton-html-plugin-sdk 0.0.64 → 0.0.65
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/README.md +43 -0
- package/dist/cjs/core/api/BbbPluginSdk.js +2 -0
- package/dist/cjs/core/api/BbbPluginSdk.js.map +1 -1
- package/dist/cjs/core/api/types.d.ts +8 -0
- package/dist/cjs/remote-data/types.d.ts +1 -0
- package/dist/cjs/remote-data/types.js +3 -0
- package/dist/cjs/remote-data/types.js.map +1 -0
- package/dist/cjs/remote-data/utils.d.ts +1 -0
- package/dist/cjs/remote-data/utils.js +14 -0
- package/dist/cjs/remote-data/utils.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -305,6 +305,49 @@ So that the data will appear in the following form:
|
|
|
305
305
|
| user-name | 1 | `<value>` |
|
|
306
306
|
|
|
307
307
|
|
|
308
|
+
### External data resources
|
|
309
|
+
|
|
310
|
+
This is the new integration with external servers to fetch data in a secure manner.
|
|
311
|
+
|
|
312
|
+
This is possible by simply configuring the dataResource name in the manifest and then its endpoint in the URL meta parameter that goes in the create request. The manifest would look like:
|
|
313
|
+
|
|
314
|
+
```json
|
|
315
|
+
{
|
|
316
|
+
// ...rest of manifest configuration
|
|
317
|
+
"remoteDataSources": [
|
|
318
|
+
{
|
|
319
|
+
"name": "allUsers",
|
|
320
|
+
"url": "${meta_pluginSettingsUserInformation}",
|
|
321
|
+
"fetchMode": "onMeetingCreate",
|
|
322
|
+
"permissions": ["moderator", "viewer"]
|
|
323
|
+
}
|
|
324
|
+
]
|
|
325
|
+
}
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
Then when creating the meeting send the following parameters along, adjusting to your needs and resources:
|
|
329
|
+
|
|
330
|
+
```
|
|
331
|
+
meta_pluginSettingsUserInformation=https://<your-external-source-with-your-authentication>/api/users
|
|
332
|
+
pluginsManifests=[{"url": "http://<domain-of-your-manifest>/your-plugin/manifest.json"}]
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
In the plugin, just use the function like:
|
|
336
|
+
|
|
337
|
+
```typescript
|
|
338
|
+
pluginApi.getRemoteData('allUsers').then((response: Response) => {
|
|
339
|
+
if (response.ok) {
|
|
340
|
+
response.json().then((r: CourseData) => {
|
|
341
|
+
// Do something with the jsonified data (if it's a json)
|
|
342
|
+
}).catch((reason) => {
|
|
343
|
+
pluginLogger.error('Error while processing the json from success response: ', reason);
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
}).catch((reason) => {
|
|
347
|
+
pluginLogger.error('Error while fetching external resource: ', reason);
|
|
348
|
+
});
|
|
349
|
+
```
|
|
350
|
+
|
|
308
351
|
|
|
309
352
|
### Frequently Asked Questions (FAQ)
|
|
310
353
|
|
|
@@ -22,6 +22,7 @@ var hooks_11 = require("../../ui-data-hooks/hooks");
|
|
|
22
22
|
var hooks_12 = require("../../data-consumption/domain/meeting/from-core/hooks");
|
|
23
23
|
var commands_2 = require("../../server-commands/commands");
|
|
24
24
|
var hooks_13 = require("../../learning-analytics-dashboard/hooks");
|
|
25
|
+
var utils_1 = require("../../remote-data/utils");
|
|
25
26
|
/**
|
|
26
27
|
* Class responsible for either initialize or get the PluginApi
|
|
27
28
|
*
|
|
@@ -69,6 +70,7 @@ var BbbPluginSdk = /** @class */ (function () {
|
|
|
69
70
|
pluginApi.usePluginSettings = function () { return (0, settings_1.usePluginSettings)(pluginName); };
|
|
70
71
|
pluginApi.serverCommands = (0, commands_2.serverCommands)(pluginName);
|
|
71
72
|
pluginApi.sendGenericDataForLearningAnalyticsDashboard = function (data) { return (0, hooks_13.sendGenericDataForLearningAnalyticsDashboard)(data, pluginName); };
|
|
73
|
+
pluginApi.getRemoteData = function (dataSourceName) { return (0, utils_1.getRemoteData)(dataSourceName, pluginName); };
|
|
72
74
|
}
|
|
73
75
|
else {
|
|
74
76
|
throw new Error('Plugin name not set');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BbbPluginSdk.js","sourceRoot":"","sources":["../../../../src/core/api/BbbPluginSdk.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,+BAAkC;AAOlC,kDAA4D;AAO5D,uDAAwD;AAQxD,kDAAiE;AACjE,gGAEgF;AAChF,wFAEwE;AACxE,oFAA+F;AAC/F,gFAAwF;AACxF,oFAA+F;AAC/F,4DAAoE;AACpE,uDAA0D;AAC1D,mEAA2E;AAE3E,uFAAsG;AACtG,2EAA8F;AAC9F,0EAA4F;AAE5F,2FAAuG;AACvG,oDAAsD;AAEtD,gFAAmF;AACnF,2DAAgE;AAChE,mEAAwG;
|
|
1
|
+
{"version":3,"file":"BbbPluginSdk.js","sourceRoot":"","sources":["../../../../src/core/api/BbbPluginSdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ import { ServerCommands } from '../../server-commands/types';
|
|
|
30
30
|
import { SendGenericDataForLearningAnalyticsDashboard } from '../../learning-analytics-dashboard/types';
|
|
31
31
|
import { UseUserCameraDomElementsFunction } from '../../dom-element-manipulation/user-camera/types';
|
|
32
32
|
import { ScreenshareHelperInterface, UserCameraHelperInterface } from '../../extensible-areas';
|
|
33
|
+
import { GetDataSource } from '../../remote-data/types';
|
|
33
34
|
export type SetPresentationToolbarItems = (presentationToolbarItem: PresentationToolbarInterface[]) => string[];
|
|
34
35
|
export type SetUserListDropdownItems = (userListDropdownItem: UserListDropdownInterface[]) => string[];
|
|
35
36
|
export type SetActionButtonDropdownItems = (actionButtonDropdownInterface: ActionButtonDropdownInterface[]) => string[];
|
|
@@ -191,6 +192,13 @@ export interface PluginApi {
|
|
|
191
192
|
*
|
|
192
193
|
*/
|
|
193
194
|
sendGenericDataForLearningAnalyticsDashboard?: SendGenericDataForLearningAnalyticsDashboard;
|
|
195
|
+
/**
|
|
196
|
+
* Fetches external data from pre-defined data-source in manifest.
|
|
197
|
+
*
|
|
198
|
+
* @param dataSourceName - name of the data source
|
|
199
|
+
*
|
|
200
|
+
*/
|
|
201
|
+
getRemoteData?: GetDataSource;
|
|
194
202
|
}
|
|
195
203
|
export interface PluginBrowserWindow extends Window {
|
|
196
204
|
bbb_plugins: {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type GetDataSource = (dataSourceName: string) => Promise<object>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/remote-data/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getRemoteData: (dataSourceName: string, pluginName: string) => Promise<Response>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRemoteData = void 0;
|
|
4
|
+
var getRemoteData = function (dataSourceName, pluginName) {
|
|
5
|
+
var _a;
|
|
6
|
+
return fetch("/api/plugin/".concat(pluginName, "/").concat(dataSourceName, "/"), {
|
|
7
|
+
credentials: 'include',
|
|
8
|
+
headers: {
|
|
9
|
+
'x-session-token': (_a = new URLSearchParams(window.location.search).get('sessionToken')) !== null && _a !== void 0 ? _a : '',
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
exports.getRemoteData = getRemoteData;
|
|
14
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/remote-data/utils.ts"],"names":[],"mappings":";;;AAAO,IAAM,aAAa,GAAG,UAAC,cAAsB,EAAE,UAAkB;;IAAK,OAAA,KAAK,CAAC,sBAAe,UAAU,cAAI,cAAc,MAAG,EAAE;QACjI,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE;YACP,iBAAiB,EAAE,MAAA,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,mCAAI,EAAE;SACzF;KACF,CAAC,CAAA;CAAA,CAAC;AALU,QAAA,aAAa,iBAKvB"}
|