Skip to content

Commit 1479fda

Browse files
committed
Finish v1.1.19
2 parents d073925 + e2b7b34 commit 1479fda

File tree

7 files changed

+115
-5
lines changed

7 files changed

+115
-5
lines changed

bitmovin/analytics/statistics.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import urljoin from 'url-join';
2+
import http, {utils} from '../http';
3+
import BitmovinError from '../BitmovinError';
4+
5+
export const statistics = (configuration, http) => {
6+
const { get } = http;
7+
8+
return {
9+
impressions: (licenseKeyId, start, end, interval, offset, limit) => {
10+
if (!licenseKeyId || !start || !end) {
11+
return Promise.reject(new BitmovinError('Not all required params given.'))
12+
}
13+
14+
const analyticsStatisticsBaseUrl = urljoin(configuration.apiBaseUrl, '/analytics/statistics/impressions');
15+
16+
const getParams = utils.buildGetParamString({
17+
licenseKeyId,
18+
start,
19+
end,
20+
interval,
21+
offset,
22+
limit
23+
});
24+
25+
const url = urljoin(analyticsStatisticsBaseUrl, getParams);
26+
return get(configuration, url);
27+
},
28+
INTERVAL: {
29+
DAILY: 'DAILY'
30+
}
31+
};
32+
};
33+
34+
export default (configuration) => {
35+
return statistics(configuration, http);
36+
};

bitmovin/bitmovin.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import playerStatistics from './player/statistics';
1515
import analyticsLicenses from './analytics/licenses';
1616
import analyticsQueries from './analytics/queries';
1717
import analyticsImpressions from './analytics/impressions';
18+
import analyticsStatistics from './analytics/statistics';
1819

1920
import logger from './Logger';
2021
import utils from './Utils';
@@ -68,7 +69,7 @@ export default class Bitmovin {
6869
'X-Api-Key' : configuration.apiKey,
6970
'X-Tenant-Org-Id' : configuration.tenantOrgId,
7071
'X-Api-Client' : configuration.xApiClient,
71-
'X-Api-Client-Version': '1.1.17'
72+
'X-Api-Client-Version': '1.1.19'
7273
};
7374

7475
this.configuration = configuration;
@@ -93,7 +94,8 @@ export default class Bitmovin {
9394
this.analytics = {
9495
licenses: analyticsLicenses(this.configuration),
9596
queries: analyticsQueries(this.configuration),
96-
impressions: analyticsImpressions(this.configuration)
97+
impressions: analyticsImpressions(this.configuration),
98+
statistics: analyticsStatistics(this.configuration)
9799
};
98100

99101
this.account = account(this.configuration);

bitmovin/player/statistics.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export const statistics = (configuration, http) => {
66
const { get } = http;
77

88
return {
9-
impressions: (licenseKeyId, start, end, offset, limit) => {
9+
impressions: (licenseKeyId, start, end, interval, offset, limit) => {
1010
if (!licenseKeyId || !start || !end) {
1111
return Promise.reject(new BitmovinError('Not all required params given.'))
1212
}
@@ -17,12 +17,16 @@ export const statistics = (configuration, http) => {
1717
licenseKeyId,
1818
start,
1919
end,
20+
interval,
2021
offset,
2122
limit
2223
});
2324

2425
const url = urljoin(playerStatisticsBaseUrl, getParams);
2526
return get(configuration, url);
27+
},
28+
INTERVAL: {
29+
DAILY: 'DAILY'
2630
}
2731
};
2832
};

examples/encoding/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "bitmovin-javascript-examples",
33
"version": "0.0.1",
44
"dependencies": {
5-
"bitmovin-javascript": "1.1.18",
5+
"bitmovin-javascript": "1.1.19",
66
"bluebird": "^3.4.7"
77
}
88
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "bitmovin-javascript",
3-
"version": "1.1.18",
3+
"version": "1.1.19",
44
"scripts": {
55
"lint": "./node_modules/eslint/bin/eslint.js --color ./bitmovin",
66
"test": "node scripts/testRunner.js tests/",

tests/analytics/statistics.test.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { getConfiguration } from '../utils';
2+
import { statistics } from '../../bitmovin/analytics/statistics';
3+
4+
import {
5+
mockGet,
6+
mockHttp,
7+
assertItReturnsUnderlyingPromise,
8+
assertItCallsCorrectUrl,
9+
testSetup
10+
} from '../assertions';
11+
12+
let testConfiguration = getConfiguration();
13+
14+
describe('analytics', () => {
15+
const statisticsClient = statistics(testConfiguration, mockHttp);
16+
beforeEach(testSetup);
17+
18+
describe('statistics', () => {
19+
describe('impressions', () => {
20+
describe('impressions default interval', () => {
21+
assertItCallsCorrectUrl('GET', '/v1/analytics/statistics/impressions',
22+
statisticsClient.impressions.bind(this, 'asdf', '2017-01-01', '2017-01-02'));
23+
assertItReturnsUnderlyingPromise(mockGet,
24+
statisticsClient.impressions.bind(this, 'asdf', '2017-01-01', '2017-01-02'));
25+
});
26+
describe('impressions daily interval', () => {
27+
assertItCallsCorrectUrl('GET', '/v1/analytics/statistics/impressions',
28+
statisticsClient.impressions.bind(this, 'asdf', '2017-01-01', '2017-01-02', statisticsClient.INTERVAL.DAILY));
29+
assertItReturnsUnderlyingPromise(mockGet,
30+
statisticsClient.impressions.bind(this, 'asdf', '2017-01-01', '2017-01-02', statisticsClient.INTERVAL.DAILY));
31+
});
32+
});
33+
});
34+
});

tests/player/statistics.test.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { getConfiguration } from '../utils';
2+
import { statistics } from '../../bitmovin/player/statistics';
3+
4+
import {
5+
mockGet,
6+
mockHttp,
7+
assertItReturnsUnderlyingPromise,
8+
assertItCallsCorrectUrl,
9+
testSetup
10+
} from '../assertions';
11+
12+
let testConfiguration = getConfiguration();
13+
14+
describe('player', () => {
15+
const statisticsClient = statistics(testConfiguration, mockHttp);
16+
beforeEach(testSetup);
17+
18+
describe('statistics', () => {
19+
describe('impressions', () => {
20+
describe('impressions default interval', () => {
21+
assertItCallsCorrectUrl('GET', '/v1/player/statistics/impressions',
22+
statisticsClient.impressions.bind(this, 'asdf', '2017-01-01', '2017-01-02'));
23+
assertItReturnsUnderlyingPromise(mockGet,
24+
statisticsClient.impressions.bind(this, 'asdf', '2017-01-01', '2017-01-02'));
25+
});
26+
describe('impressions daily interval', () => {
27+
assertItCallsCorrectUrl('GET', '/v1/player/statistics/impressions',
28+
statisticsClient.impressions.bind(this, 'asdf', '2017-01-01', '2017-01-02', statisticsClient.INTERVAL.DAILY));
29+
assertItReturnsUnderlyingPromise(mockGet,
30+
statisticsClient.impressions.bind(this, 'asdf', '2017-01-01', '2017-01-02', statisticsClient.INTERVAL.DAILY));
31+
});
32+
});
33+
});
34+
});

0 commit comments

Comments
 (0)