-
Notifications
You must be signed in to change notification settings - Fork 0
/
nodePF.js
61 lines (49 loc) · 1.48 KB
/
nodePF.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
const anr = require('afrostream-node-request');
// fixme: this dependency should be injected
const logger = rootRequire('logger').prefix('NODE-PF');
const { PfContent } = rootRequire('pf');
class NodePF {
getPfContentById(contentId) {
return NodePF.request({
uri: `/api/contents/${contentId}`,
qs: {
populate: 'streams,assets.preset.profile,assets.streams'
}
});
}
getPfContentByPFMd5Hash(md5Hash) {
// using OLD api to translate md5Hash to contentId
const content = new PfContent(md5Hash, null);
return content.getContent()
.then(content => {
if (!content || !content.contentId) throw new Error('missing contentId');
return this.getPfContentById(content.contentId);
});
}
}
NodePF.request = (() => {
const requestNodePF = anr.create({
name: 'REQUEST-NODE-PF',
timeout: 5000,
baseUrl: 'http://p-afsmsch-001.afrostream.tv:4042',
auth: {
user: 'afrostream',
pass: 'r4nd0mt0k3n',
sendImmediately: true
}
});
return options => {
var readableQueryString = Object.keys(options.qs || []).map(k => k + '=' + options.qs[k]).join('&');
var readableUrl = 'http://p-afsmsch-001.afrostream.tv:4042' + options.uri + (readableQueryString?'?' + readableQueryString:'');
logger.log(readableUrl);
return requestNodePF(options).then(
data => {
return data[1]; // body
},
err => {
throw err; // fwd
}
);
};
})();
module.exports = NodePF;