Release v2.10.4
This commit is contained in:
@@ -15,6 +15,7 @@ module.exports = function registerManageRoutes(app, deps) {
|
||||
const getScreenConnections = deps.getScreenConnections;
|
||||
const forwardPlayerCommand = deps.forwardPlayerCommand;
|
||||
const forwardPlayerCommandToBaseUrl = deps.forwardPlayerCommandToBaseUrl;
|
||||
const forwardPlayerCommandToDevice = deps.forwardPlayerCommandToDevice;
|
||||
const requirePermission = deps.requirePermission;
|
||||
|
||||
const SCREEN_NAME_MAX_LENGTH = 255;
|
||||
@@ -88,12 +89,30 @@ module.exports = function registerManageRoutes(app, deps) {
|
||||
}
|
||||
|
||||
async function forwardPlayerCommandForConnections(slug, connections, commandPayload) {
|
||||
const targetBaseUrls = await resolvePlayerBaseUrlsForConnections(connections);
|
||||
const connectionList = Array.isArray(connections) ? connections : [];
|
||||
const remoteDeviceIds = Array.from(new Set(connectionList.map(function (connection) {
|
||||
return String(connection && connection.playerDeviceId || '').trim();
|
||||
}).filter(Boolean)));
|
||||
const localConnections = connectionList.filter(function (connection) {
|
||||
return !String(connection && connection.playerDeviceId || '').trim();
|
||||
});
|
||||
const results = [];
|
||||
if (remoteDeviceIds.length && typeof forwardPlayerCommandToDevice === 'function') {
|
||||
const remoteResults = await Promise.allSettled(remoteDeviceIds.map(function (deviceId) {
|
||||
return forwardPlayerCommandToDevice(deviceId, Object.assign({ screenSlug: slug }, commandPayload || {}));
|
||||
}));
|
||||
results.push.apply(results, remoteResults);
|
||||
}
|
||||
|
||||
const targetBaseUrls = await resolvePlayerBaseUrlsForConnections(localConnections);
|
||||
if (targetBaseUrls.length && typeof forwardPlayerCommandToBaseUrl === 'function') {
|
||||
const results = await Promise.allSettled(targetBaseUrls.map(function (targetBaseUrl) {
|
||||
const localResults = await Promise.allSettled(targetBaseUrls.map(function (targetBaseUrl) {
|
||||
return forwardPlayerCommandToBaseUrl(targetBaseUrl, slug, commandPayload);
|
||||
}));
|
||||
results.push.apply(results, localResults);
|
||||
}
|
||||
|
||||
if (results.length) {
|
||||
return {
|
||||
ok: true,
|
||||
sent: results.filter(function (result) {
|
||||
|
||||
Reference in New Issue
Block a user