@playkit-js/playkit-js-providers 2.40.1 → 2.40.2-canary.0-45b4098
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/index.d.ts +1624 -0
- package/dist/playkit-analytics-service.js +1 -1
- package/dist/playkit-analytics-service.js.map +1 -1
- package/dist/playkit-bookmark-service.js +1 -1
- package/dist/playkit-bookmark-service.js.map +1 -1
- package/dist/playkit-ott-provider.js +1 -1
- package/dist/playkit-ott-provider.js.map +1 -1
- package/dist/playkit-ovp-provider.js +2 -1
- package/dist/playkit-ovp-provider.js.LICENSE.txt +1 -0
- package/dist/playkit-ovp-provider.js.map +1 -1
- package/dist/playkit-stats-service.js +1 -1
- package/dist/playkit-stats-service.js.map +1 -1
- package/dist/tsdoc-metadata.json +11 -0
- package/flow-typed/types/media-config-sources.js +1 -1
- package/flow-typed/types/media-sources.js +1 -1
- package/package.json +49 -46
- package/playkit-analytics-service/package.json +5 -0
- package/playkit-bookmark-service/package.json +5 -0
- package/playkit-ott-provider/package.json +5 -0
- package/playkit-ovp-provider/package.json +5 -0
- package/playkit-stats-service/package.json +5 -0
- package/src/entities/bumper.ts +21 -0
- package/src/entities/drm.ts +47 -0
- package/src/entities/entry-list.ts +13 -0
- package/src/entities/image-source.ts +36 -0
- package/src/entities/media-entry.ts +104 -0
- package/src/entities/media-format.ts +47 -0
- package/src/entities/media-source.ts +70 -0
- package/src/entities/media-sources.ts +79 -0
- package/src/entities/playlist.ts +41 -0
- package/src/k-provider/common/base-provider-parser.ts +0 -0
- package/src/k-provider/common/base-provider.ts +112 -0
- package/src/k-provider/common/base-service-result.ts +56 -0
- package/src/k-provider/common/data-loader-manager.ts +115 -0
- package/src/k-provider/common/multi-request-builder.ts +111 -0
- package/src/k-provider/common/response-types/kaltura-access-control-message.ts +21 -0
- package/src/k-provider/common/response-types/kaltura-drm-playback-plugin-data.ts +38 -0
- package/src/k-provider/ott/config.ts +22 -0
- package/src/k-provider/ott/index.ts +14 -0
- package/src/k-provider/ott/loaders/asset-list-loader.ts +68 -0
- package/src/k-provider/ott/loaders/asset-loader.ts +69 -0
- package/src/k-provider/ott/loaders/data-loader-manager.ts +15 -0
- package/src/k-provider/ott/loaders/session-loader.ts +62 -0
- package/src/k-provider/ott/provider-parser.ts +285 -0
- package/src/k-provider/ott/provider.ts +252 -0
- package/src/k-provider/ott/response-types/kaltura-asset.ts +105 -0
- package/src/k-provider/ott/response-types/kaltura-bumper-playback-plugin-data.ts +27 -0
- package/src/k-provider/ott/response-types/kaltura-playback-context.ts +73 -0
- package/src/k-provider/ott/response-types/kaltura-playback-source.ts +62 -0
- package/src/k-provider/ott/response-types/kaltura-rule-action.ts +25 -0
- package/src/k-provider/ott/services/asset-service.ts +50 -0
- package/src/k-provider/ott/services/bookmark/bookmark-service.ts +48 -0
- package/src/k-provider/ott/services/bookmark/index.ts +11 -0
- package/src/k-provider/ott/services/ott-service.ts +33 -0
- package/src/k-provider/ott/services/user-service.ts +31 -0
- package/src/k-provider/ovp/config.ts +28 -0
- package/src/k-provider/ovp/external-captions-builder.ts +37 -0
- package/src/k-provider/ovp/index.ts +13 -0
- package/src/k-provider/ovp/loaders/data-loader-manager.ts +17 -0
- package/src/k-provider/ovp/loaders/entry-list-loader.ts +69 -0
- package/src/k-provider/ovp/loaders/media-entry-loader.ts +84 -0
- package/src/k-provider/ovp/loaders/playlist-loader.ts +69 -0
- package/src/k-provider/ovp/loaders/session-loader.ts +62 -0
- package/src/k-provider/ovp/loaders/ui-config-loader.ts +71 -0
- package/src/k-provider/ovp/play-source-url-builder.ts +59 -0
- package/src/k-provider/ovp/provider-parser.ts +461 -0
- package/src/k-provider/ovp/provider.ts +358 -0
- package/src/k-provider/ovp/regex-action-handler.ts +149 -0
- package/src/k-provider/ovp/request-params/base-entry-response-profile.ts +28 -0
- package/src/k-provider/ovp/response-types/index.ts +21 -0
- package/src/k-provider/ovp/response-types/kaltura-access-control-modify-request-host-regex-action.ts +35 -0
- package/src/k-provider/ovp/response-types/kaltura-base-entry-list-response.ts +30 -0
- package/src/k-provider/ovp/response-types/kaltura-bumper.ts +25 -0
- package/src/k-provider/ovp/response-types/kaltura-flavor-asset.ts +108 -0
- package/src/k-provider/ovp/response-types/kaltura-media-entries.ts +28 -0
- package/src/k-provider/ovp/response-types/kaltura-media-entry.ts +189 -0
- package/src/k-provider/ovp/response-types/kaltura-metadata-list-response.ts +22 -0
- package/src/k-provider/ovp/response-types/kaltura-metadata.ts +50 -0
- package/src/k-provider/ovp/response-types/kaltura-playback-context.ts +95 -0
- package/src/k-provider/ovp/response-types/kaltura-playback-source.ts +89 -0
- package/src/k-provider/ovp/response-types/kaltura-playlist.ts +33 -0
- package/src/k-provider/ovp/response-types/kaltura-rule-action.ts +27 -0
- package/src/k-provider/ovp/response-types/kaltura-ui-conf-response.ts +89 -0
- package/src/k-provider/ovp/response-types/kaltura-user-entry-list-response.ts +30 -0
- package/src/k-provider/ovp/response-types/kaltura-user-entry.ts +57 -0
- package/src/k-provider/ovp/services/analytics/analytics-service.ts +58 -0
- package/src/k-provider/ovp/services/analytics/index.ts +11 -0
- package/src/k-provider/ovp/services/base-entry-service.ts +75 -0
- package/src/k-provider/ovp/services/meta-data-service.ts +29 -0
- package/src/k-provider/ovp/services/ovp-service.ts +32 -0
- package/src/k-provider/ovp/services/playlist-service.ts +95 -0
- package/src/k-provider/ovp/services/session-service.ts +27 -0
- package/src/k-provider/ovp/services/stats/index.ts +11 -0
- package/src/k-provider/ovp/services/stats/stats-service.ts +32 -0
- package/src/k-provider/ovp/services/ui-conf-service.ts +32 -0
- package/src/types/adapter-data-config.ts +1 -0
- package/src/types/caption-type.ts +1 -0
- package/src/types/drm-data.ts +5 -0
- package/src/types/entry-list.ts +6 -0
- package/src/types/env-config.ts +7 -0
- package/src/types/external-caption-object.ts +7 -0
- package/src/types/filter-options.ts +3 -0
- package/src/types/index.ts +34 -0
- package/src/types/loader.ts +7 -0
- package/src/types/media-config-metadata.ts +13 -0
- package/src/types/media-config-session.ts +6 -0
- package/src/types/media-config-sources.ts +20 -0
- package/src/types/media-config.ts +8 -0
- package/src/types/media-entry.ts +16 -0
- package/src/types/media-format.ts +5 -0
- package/src/types/media-info.ts +21 -0
- package/src/types/media-source.ts +12 -0
- package/src/types/media-sources.ts +11 -0
- package/src/types/network-retry-parameters.ts +5 -0
- package/src/types/playback-context.ts +10 -0
- package/src/types/playlist-info.ts +4 -0
- package/src/types/playlist-item.ts +5 -0
- package/src/types/playlist-metadata.ts +4 -0
- package/src/types/playlist.ts +10 -0
- package/src/types/poster.ts +5 -0
- package/src/types/provider-options.ts +17 -0
- package/src/types/request-loader.ts +6 -0
- package/src/util/clone.ts +23 -0
- package/src/util/error/category.ts +11 -0
- package/src/util/error/code.ts +77 -0
- package/src/util/error/error.ts +47 -0
- package/src/util/error/severity.ts +21 -0
- package/src/util/logger.ts +108 -0
- package/src/util/param.ts +45 -0
- package/src/util/request-builder.ts +187 -0
- package/src/util/xml-parser.ts +39 -0
- package/CHANGELOG.md +0 -959
- package/samples/ott/bookmark.html +0 -23
- package/samples/ott/provider.html +0 -28
- package/samples/ovp/provider.html +0 -30
- package/samples/ovp/stats.html +0 -17
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import RequestBuilder from '../../util/request-builder';
|
|
2
|
+
import getLogger from '../../util/logger';
|
|
3
|
+
import ServiceResult from './base-service-result';
|
|
4
|
+
import Error from '../../util/error/error';
|
|
5
|
+
|
|
6
|
+
export default class MultiRequestBuilder extends RequestBuilder {
|
|
7
|
+
private static _logger = getLogger('MultiRequestBuilder');
|
|
8
|
+
/**
|
|
9
|
+
* @memberof - MultiRequestBuilder
|
|
10
|
+
* @type {Array<RequestBuilder>}
|
|
11
|
+
*/
|
|
12
|
+
public requests: Array<RequestBuilder> = [];
|
|
13
|
+
/**
|
|
14
|
+
* Adds request to requests array
|
|
15
|
+
* @function add
|
|
16
|
+
* @param {RequestBuilder} request The request
|
|
17
|
+
* @returns {MultiRequestBuilder} The multiRequest
|
|
18
|
+
*/
|
|
19
|
+
public add(request: RequestBuilder): MultiRequestBuilder {
|
|
20
|
+
this.requests.push(request);
|
|
21
|
+
const requestParams = {};
|
|
22
|
+
const serviceDef: any = {service: request.service, action: request.action};
|
|
23
|
+
Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});
|
|
24
|
+
Object.assign(requestParams, this.params);
|
|
25
|
+
this.params = requestParams;
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Executes a multi request
|
|
31
|
+
* @function execute
|
|
32
|
+
* @param {boolean} requestsMustSucceed whether all of the requests must succeed or not
|
|
33
|
+
* @returns {Promise} The multirequest execution promise
|
|
34
|
+
*/
|
|
35
|
+
public execute(requestsMustSucceed?: boolean): Promise<any> {
|
|
36
|
+
return new Promise((resolve, reject) => {
|
|
37
|
+
try {
|
|
38
|
+
this.params = JSON.stringify(this.params);
|
|
39
|
+
} catch (err) {
|
|
40
|
+
MultiRequestBuilder._logger.error(`${err.message}`);
|
|
41
|
+
reject(
|
|
42
|
+
new Error(Error.Severity.CRITICAL, Error.Category.PROVIDER, Error.Code.FAILED_PARSING_REQUEST, {
|
|
43
|
+
error: err,
|
|
44
|
+
params: this.params
|
|
45
|
+
})
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
this.doHttpRequest().then(
|
|
49
|
+
data => {
|
|
50
|
+
const multiRequestResult = new MultiRequestResult(data, requestsMustSucceed);
|
|
51
|
+
if (multiRequestResult.success) {
|
|
52
|
+
resolve({
|
|
53
|
+
headers: this.responseHeaders,
|
|
54
|
+
response: multiRequestResult
|
|
55
|
+
});
|
|
56
|
+
} else {
|
|
57
|
+
reject(
|
|
58
|
+
new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, Error.Code.MULTIREQUEST_API_ERROR, {
|
|
59
|
+
url: this.url,
|
|
60
|
+
headers: this.responseHeaders,
|
|
61
|
+
results: multiRequestResult.results
|
|
62
|
+
})
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
err => {
|
|
67
|
+
reject(err);
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export class MultiRequestResult {
|
|
75
|
+
private static _logger = getLogger('MultiRequestResult');
|
|
76
|
+
/**
|
|
77
|
+
* @memberof MultiRequestResult
|
|
78
|
+
* @type {boolean}
|
|
79
|
+
*/
|
|
80
|
+
public success: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* @memberof MultiRequestResult
|
|
83
|
+
* @type {Object}
|
|
84
|
+
*/
|
|
85
|
+
public results: Array<ServiceResult> = [];
|
|
86
|
+
/**
|
|
87
|
+
* @constructor
|
|
88
|
+
* @param {Object} response data
|
|
89
|
+
* @param {boolean} requestsMustSucceed whether all of the requests must succeed
|
|
90
|
+
*/
|
|
91
|
+
constructor(response: any, requestsMustSucceed: boolean = true) {
|
|
92
|
+
const result = response.result ? response.result : response;
|
|
93
|
+
const responseArr = Array.isArray(result) ? result : [result];
|
|
94
|
+
const results = responseArr.map(result => new ServiceResult(result));
|
|
95
|
+
const errorResults = results.filter(serviceResult => serviceResult.hasError);
|
|
96
|
+
|
|
97
|
+
errorResults.forEach(serviceResult => {
|
|
98
|
+
MultiRequestResult._logger.error(
|
|
99
|
+
`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`
|
|
100
|
+
);
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
this.results = results;
|
|
104
|
+
if ((requestsMustSucceed && errorResults.length) || errorResults.length === this.results.length) {
|
|
105
|
+
this.success = false;
|
|
106
|
+
} else {
|
|
107
|
+
this.results = this.results.filter(serviceResult => !serviceResult.hasError);
|
|
108
|
+
this.success = true;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export class KalturaAccessControlMessage {
|
|
2
|
+
/**
|
|
3
|
+
* @member - The access control message
|
|
4
|
+
* @type {string}
|
|
5
|
+
*/
|
|
6
|
+
public message: string;
|
|
7
|
+
/**
|
|
8
|
+
* @member - The access control message code
|
|
9
|
+
* @@type {string}
|
|
10
|
+
*/
|
|
11
|
+
public code: string;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @constructor
|
|
15
|
+
* @param {Object} data The json response
|
|
16
|
+
*/
|
|
17
|
+
constructor(data: any) {
|
|
18
|
+
this.message = data.message;
|
|
19
|
+
this.code = data.code;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export class KalturaDrmPlaybackPluginData {
|
|
2
|
+
public static Scheme: {[scheme: string]: string} = {
|
|
3
|
+
'drm.PLAYREADY_CENC': 'com.microsoft.playready',
|
|
4
|
+
'drm.WIDEVINE_CENC': 'com.widevine.alpha',
|
|
5
|
+
'fairplay.FAIRPLAY': 'com.apple.fairplay',
|
|
6
|
+
WIDEVINE_CENC: 'com.widevine.alpha',
|
|
7
|
+
PLAYREADY_CENC: 'com.microsoft.playready',
|
|
8
|
+
FAIRPLAY: 'com.apple.fairplay'
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @member - The drm scheme
|
|
13
|
+
* @type {string}
|
|
14
|
+
*/
|
|
15
|
+
public scheme: string;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @member - The license URL
|
|
19
|
+
* @type {string}
|
|
20
|
+
*/
|
|
21
|
+
public licenseURL: string;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @member - The drm certificate
|
|
25
|
+
* @type {?string}
|
|
26
|
+
*/
|
|
27
|
+
public certificate?: string;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @constructor
|
|
31
|
+
* @param {Object} drm The json response
|
|
32
|
+
*/
|
|
33
|
+
constructor(drm: any) {
|
|
34
|
+
this.scheme = drm.scheme;
|
|
35
|
+
this.licenseURL = drm.licenseURL;
|
|
36
|
+
this.certificate = drm.certificate;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {clone} from '../../util/clone';
|
|
2
|
+
import {ProviderEnvConfigObject} from '../../types';
|
|
3
|
+
|
|
4
|
+
const defaultConfig: any = {
|
|
5
|
+
serviceParams: {
|
|
6
|
+
apiVersion: '7.8.1'
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export default class OTTConfiguration {
|
|
11
|
+
public static set(clientConfig?: ProviderEnvConfigObject): void {
|
|
12
|
+
if (clientConfig) {
|
|
13
|
+
Object.assign(defaultConfig, clientConfig);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
public static get(): any {
|
|
18
|
+
return clone(defaultConfig);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export {OTTConfiguration};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import OTTProvider from './provider';
|
|
2
|
+
import KalturaPlaybackContext from './response-types/kaltura-playback-context';
|
|
3
|
+
import KalturaAsset from './response-types/kaltura-asset';
|
|
4
|
+
|
|
5
|
+
declare let __VERSION__: string;
|
|
6
|
+
declare let __NAME__: string;
|
|
7
|
+
|
|
8
|
+
const NAME = __NAME__ + '-ott';
|
|
9
|
+
const VERSION = __VERSION__;
|
|
10
|
+
|
|
11
|
+
const ContextType = KalturaPlaybackContext.Type;
|
|
12
|
+
const MediaType = KalturaAsset.Type;
|
|
13
|
+
|
|
14
|
+
export {OTTProvider as Provider, ContextType, MediaType, NAME, VERSION};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import RequestBuilder from '../../../util/request-builder';
|
|
2
|
+
import OTTConfiguration from '../config';
|
|
3
|
+
import OTTAssetService from '../services/asset-service';
|
|
4
|
+
import KalturaAsset from '../response-types/kaltura-asset';
|
|
5
|
+
import {ILoader} from '../../../types';
|
|
6
|
+
|
|
7
|
+
export default class OTTAssetListLoader implements ILoader {
|
|
8
|
+
private _entries: Array<string>;
|
|
9
|
+
private _requests!: Array<RequestBuilder>;
|
|
10
|
+
private _response: any = {playlistItems: {entries: []}};
|
|
11
|
+
|
|
12
|
+
public static get id(): string {
|
|
13
|
+
return 'asset_list';
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @constructor
|
|
18
|
+
* @param {Object} params loader params
|
|
19
|
+
*/
|
|
20
|
+
constructor(params: any) {
|
|
21
|
+
this.requests = this.buildRequests(params);
|
|
22
|
+
this._entries = params.entries;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public set requests(requests: Array<RequestBuilder>) {
|
|
26
|
+
this._requests = requests;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public get requests(): Array<RequestBuilder> {
|
|
30
|
+
return this._requests;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public set response(response: any) {
|
|
34
|
+
response.forEach(item => {
|
|
35
|
+
this._response.playlistItems.entries.push({mediaDataResult: new KalturaAsset(item.data)});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public get response(): any {
|
|
40
|
+
return this._response;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Builds loader requests
|
|
45
|
+
* @function
|
|
46
|
+
* @param {Object} params Requests parameters
|
|
47
|
+
* @returns {RequestBuilder} The request builder
|
|
48
|
+
* @static
|
|
49
|
+
*/
|
|
50
|
+
public buildRequests(params: any): Array<RequestBuilder> {
|
|
51
|
+
const config = OTTConfiguration.get();
|
|
52
|
+
const requests: Array<RequestBuilder> = [];
|
|
53
|
+
params.entries.forEach(entry => {
|
|
54
|
+
const assetReferenceType = entry.assetReferenceType || KalturaAsset.AssetReferenceType.MEDIA;
|
|
55
|
+
requests.push(OTTAssetService.get(config.serviceUrl, params.ks, entry.entryId || entry, assetReferenceType));
|
|
56
|
+
});
|
|
57
|
+
return requests;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Loader validation function
|
|
62
|
+
* @function
|
|
63
|
+
* @returns {boolean} Is valid
|
|
64
|
+
*/
|
|
65
|
+
public isValid(): boolean {
|
|
66
|
+
return !!(this._entries && this._entries.length);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import OTTAssetService from '../services/asset-service';
|
|
2
|
+
import OTTConfiguration from '../config';
|
|
3
|
+
import RequestBuilder from '../../../util/request-builder';
|
|
4
|
+
import KalturaPlaybackContext from '../response-types/kaltura-playback-context';
|
|
5
|
+
import KalturaAsset from '../response-types/kaltura-asset';
|
|
6
|
+
import {ILoader} from '../../../types';
|
|
7
|
+
|
|
8
|
+
type OTTAssetLoaderResponse = {mediaDataResult: KalturaAsset, playBackContextResult: KalturaPlaybackContext};
|
|
9
|
+
export type {OTTAssetLoaderResponse};
|
|
10
|
+
|
|
11
|
+
export default class OTTAssetLoader implements ILoader {
|
|
12
|
+
private _entryId: string;
|
|
13
|
+
private _requests!: Array<RequestBuilder>;
|
|
14
|
+
private _response: any = {};
|
|
15
|
+
|
|
16
|
+
public static get id(): string {
|
|
17
|
+
return 'asset';
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @constructor
|
|
22
|
+
* @param {Object} params loader params
|
|
23
|
+
*/
|
|
24
|
+
constructor(params: any) {
|
|
25
|
+
this.requests = this.buildRequests(params);
|
|
26
|
+
this._entryId = params.entryId;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public set requests(requests: Array<RequestBuilder>) {
|
|
30
|
+
this._requests = requests;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public get requests(): Array<RequestBuilder> {
|
|
34
|
+
return this._requests;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public set response(response: any) {
|
|
38
|
+
this._response.mediaDataResult = new KalturaAsset(response[0].data);
|
|
39
|
+
this._response.playBackContextResult = new KalturaPlaybackContext(response[1].data);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public get response(): OTTAssetLoaderResponse {
|
|
43
|
+
return this._response;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Builds loader requests
|
|
48
|
+
* @function
|
|
49
|
+
* @param {Object} params Requests parameters
|
|
50
|
+
* @returns {RequestBuilder} The request builder
|
|
51
|
+
* @static
|
|
52
|
+
*/
|
|
53
|
+
public buildRequests(params: any): Array<RequestBuilder> {
|
|
54
|
+
const config = OTTConfiguration.get();
|
|
55
|
+
const requests: Array<RequestBuilder> = [];
|
|
56
|
+
requests.push(OTTAssetService.get(config.serviceUrl, params.ks, params.entryId, params.assetReferenceType));
|
|
57
|
+
requests.push(OTTAssetService.getPlaybackContext(config.serviceUrl, params.ks, params.entryId, params.type, params.playbackContext));
|
|
58
|
+
return requests;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Loader validation function
|
|
63
|
+
* @function
|
|
64
|
+
* @returns {boolean} Is valid
|
|
65
|
+
*/
|
|
66
|
+
public isValid(): boolean {
|
|
67
|
+
return !!this._entryId;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import DataLoaderManager from '../../common/data-loader-manager';
|
|
2
|
+
import OTTService from '../services/ott-service';
|
|
3
|
+
import {ProviderNetworkRetryParameters} from '../../../types';
|
|
4
|
+
/**
|
|
5
|
+
* OTTDataLoaderManager is a class that handles the OTT data loading
|
|
6
|
+
* @param {string} partnerId - partner id
|
|
7
|
+
* @param {string} ks - ks
|
|
8
|
+
* @param {ProviderNetworkRetryParameters} [networkRetryConfig] - network retry configuration
|
|
9
|
+
*/
|
|
10
|
+
export default class OTTDataLoaderManager extends DataLoaderManager {
|
|
11
|
+
constructor(partnerId: number, ks: string = '', networkRetryConfig: ProviderNetworkRetryParameters) {
|
|
12
|
+
super(networkRetryConfig);
|
|
13
|
+
this._multiRequest = OTTService.getMultiRequest(ks, partnerId);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import UserService from '../services/user-service';
|
|
2
|
+
import OTTConfiguration from '../config';
|
|
3
|
+
import RequestBuilder from '../../../util/request-builder';
|
|
4
|
+
import {ILoader} from '../../../types';
|
|
5
|
+
|
|
6
|
+
export default class OTTSessionLoader implements ILoader {
|
|
7
|
+
private _partnerId: number;
|
|
8
|
+
private _requests!: Array<RequestBuilder>;
|
|
9
|
+
private _response: any = {};
|
|
10
|
+
|
|
11
|
+
public static get id(): string {
|
|
12
|
+
return 'session';
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @constructor
|
|
17
|
+
* @param {Object} params loader params
|
|
18
|
+
*/
|
|
19
|
+
constructor(params: any) {
|
|
20
|
+
this.requests = this.buildRequests(params);
|
|
21
|
+
this._partnerId = params.partnerId;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public set requests(requests: Array<RequestBuilder>) {
|
|
25
|
+
this._requests = requests;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public get requests(): Array<RequestBuilder> {
|
|
29
|
+
return this._requests;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public set response(response: any) {
|
|
33
|
+
this._response.ks = response[0].data.ks;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public get response(): any {
|
|
37
|
+
return this._response.ks;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Builds loader requests
|
|
42
|
+
* @function
|
|
43
|
+
* @param {Object} params Requests parameters
|
|
44
|
+
* @returns {RequestBuilder} The request builder
|
|
45
|
+
* @static
|
|
46
|
+
*/
|
|
47
|
+
public buildRequests(params: any): Array<RequestBuilder> {
|
|
48
|
+
const config = OTTConfiguration.get();
|
|
49
|
+
const requests: Array<RequestBuilder> = [];
|
|
50
|
+
requests.push(UserService.anonymousLogin(config.serviceUrl, params.partnerId, params.udid));
|
|
51
|
+
return requests;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Loader validation function
|
|
56
|
+
* @function
|
|
57
|
+
* @returns {boolean} Is valid
|
|
58
|
+
*/
|
|
59
|
+
public isValid(): boolean {
|
|
60
|
+
return !!this._partnerId;
|
|
61
|
+
}
|
|
62
|
+
}
|