@oddnetworks/oddworks
Advanced tools
Comparing version 4.6.2 to 4.6.3
'use strict'; | ||
const _ = require('lodash'); | ||
const Promise = require('bluebird'); | ||
const Boom = require('boom'); | ||
@@ -18,2 +19,3 @@ const objectSort = require('object-property-natural-sort'); | ||
const channel = (req.identity.channel || {}).id; | ||
const viewer = req.identity.viewer; | ||
@@ -80,2 +82,26 @@ if (!channel) { | ||
let resultsPromise = Promise.resolve(data); | ||
if (data && viewer) { | ||
resultsPromise = Promise.map(data, resource => { | ||
const viewerId = (viewer || {}).id; | ||
// Return the resource and do not apply progress to non-videos | ||
if (resource.type !== 'video') { | ||
return resource; | ||
} | ||
return this.bus.query({role: 'store', cmd: 'get', type: 'progress'}, {id: `${resource.id}:${viewerId}`, type: 'progress', channel}) | ||
.then(progress => { | ||
progress = progress || {}; | ||
resource.position = progress.position || 0; | ||
resource.complete = progress.complete || false; | ||
return resource; | ||
}); | ||
}); | ||
} | ||
return resultsPromise; | ||
}) | ||
.then(data => { | ||
res.status(200); | ||
@@ -82,0 +108,0 @@ res.body = data; |
@@ -44,3 +44,3 @@ 'use strict'; | ||
if (req.params.id !== viewerId) { | ||
return Boom.unauthorized('Viewer specified in JWT does not match requested viewer.'); | ||
return Boom.forbidden('Viewer specified in JWT does not match requested viewer.'); | ||
} | ||
@@ -47,0 +47,0 @@ |
{ | ||
"name": "@oddnetworks/oddworks", | ||
"version": "4.6.2", | ||
"version": "4.6.3", | ||
"description": "An extensible media platform for OTT devices.", | ||
@@ -5,0 +5,0 @@ "main": "./lib/oddworks.js", |
201231
4663