app2-api/helpers/vimeo.helper.js
2019-07-30 18:23:13 +02:00

48 lines
1.3 KiB
JavaScript

const config = require('../config');
const Vimeo = require('vimeo').Vimeo;
const client = new Vimeo(config.vimeo.CLIENT_ID, config.vimeo.CLIENT_SECRET, config.vimeo.ACCESS_TOKEN);
function getIframeSource(iframeHtml) {
const groups = iframeHtml.match(/\<iframe.+src\=(?:\"|\')(.+?)(?:\"|\')/);
return groups[1];
}
function extractInformation(vimeoResponse) {
return {
duration: vimeoResponse.duration,
name: vimeoResponse.name,
description: vimeoResponse.description,
link: vimeoResponse.link,
type: vimeoResponse.type,
stats: vimeoResponse.stats,
download: vimeoResponse.download,
pictures: vimeoResponse.pictures,
embed: getIframeSource(vimeoResponse.embed.html)
}
}
function getVimeoVideoInfo(videoId) {
return new Promise(function(resolve, reject) {
client.request({
method: 'GET',
path: '/videos/' + videoId
}, function (error, body, status_code, headers) {
if (error) {
console.error(error);
resolve({})
} else {
if (body.status !== 'available') {
resolve({})
} else {
resolve(extractInformation(body));
}
}
})
});
}
module.exports = getVimeoVideoInfo;