// import axios from 'axios'; // import { callbackify } from 'util'; // import { ConnectionManager_Connection } from '../../../../ConnectionManager'; // import { Log } from '../../../../Logger'; // import { ActionAPI } from '../../../ActionAPI'; // import { EditorAPI, EditorAPI_Field } from '../../../EditorAPI'; // module.exports = (actionAPI: ActionAPI) => { // actionAPI.handle( // (properties: Publish_Properties, status: (text: string, type?: 'info' | 'error' | 'warn') => void) => { // var connectionID = properties.connectionID; // var sceneID = properties.sceneID; // var displayIDs = properties.displayIDs; // var connection = actionAPI.getConnection('channel', connectionID); // if (connection && connectionID != undefined && sceneID != undefined && displayIDs != undefined) { // var url = `${getBaseURL(connection)}/scenes/publish/${sceneID}/${displayIDs.join(',')}`; // axios // .get(url) // .then((response) => { // if (response.data != undefined) { // if (response.data.succeed == true) { // status(`Scene ${sceneID} was published to display(s) ${displayIDs.join(', ')}`); // } else status(response.data.error, 'error'); // } // }) // .catch((error) => { // status('Unable to reach Getiyo server', 'error'); // }); // } // } // ); // var channelSceneCache = {}; // actionAPI.onOpenEditor((editorAPI: EditorAPI, properties: Publish_Properties) => { // var connectionID = properties.connectionID != undefined ? properties.connectionID : 'none'; // var sceneID = properties.sceneID != undefined ? properties.sceneID : 'none'; // var displayIDs = properties.displayIDs != undefined ? properties.displayIDs : []; // var connection: ConnectionManager_Connection = null; // var lastConnectionID: string = connectionID; // editorAPI.onFieldChanges((newFields: EditorAPI_Field[]) => { // var fieldObject = editorAPI.tools.objectifyFieldsValues(newFields); // editorAPI.saveProperties({ // connectionID: fieldObject.connection, // sceneID: fieldObject.sceneID, // displayIDs: fieldObject.displayIDs // }); // fields[0].value = fieldObject.connection; // if (lastConnectionID != fieldObject.connection) { // getConnection(fieldObject.connection, () => { // editorAPI.setFields(fields); // }); // } // }); // function getConnection(connectionID: string, callback: () => void) { // var newConnection = actionAPI.getConnection('channel', connectionID); // if (connectionID == 'none') { // fields[1].values = []; // fields[2].values = []; // callback(); // } else if (newConnection != null) { // lastConnectionID = connectionID; // connection = newConnection; // updateScenes(() => updateDisplays(callback)); // } else callback(); // } // function updateScenes(callback: () => void) { // var baseURL = getBaseURL(connection); // if (baseURL) { // axios // .get(`${baseURL}/scenes`) // .then((response) => { // if (response.data != undefined) { // if (response.data.succeed == true) { // var scenes: Channel_Scene[] = response.data.response.map((scene) => { // return { id: scene.id, text: `${scene.id} - ${scene.name}` }; // }); // fields[1].values = scenes; // channelSceneCache[connection.properties.channel] = scenes; // callback(); // } else { // Log('error', response.data.error); // callback(); // } // } // }) // .catch((error) => { // Log( // 'error', // `Error whilst fetching Getiyo scenes for channel '${connection.properties.channel}'`, // error // ); // callback(); // }); // } // } // function updateDisplays(callback: () => void) { // var baseURL = getBaseURL(connection); // if (baseURL) { // axios // .get(`${baseURL}/displays`) // .then((response) => { // if (response.data != undefined) { // if (response.data.succeed == true) { // var scenes: Channel_Display[] = response.data.response.map((display) => { // return { id: display.id, text: `${display.id} - ${display.name}` }; // }); // fields[2].values = scenes; // channelSceneCache[connection.properties.channel] = scenes; // callback(); // } else { // Log('error', response.data.error); // callback(); // } // } // }) // .catch((error) => { // Log( // 'error', // `Error whilst fetching Getiyo displays for channel '${connection.properties.channel}'`, // error // ); // callback(); // }); // } // } // var defaultSceneValues = []; // if (connection != null && connection.properties != null) { // if (channelSceneCache[connection.properties.channel] != undefined) { // defaultSceneValues = channelSceneCache[connection.properties.channel]; // } // } // var fields: EditorAPI_Field[] = [ // { // id: 'connection', // name: 'Connection', // type: 'connection', // value: connectionID, // connectionType: 'channel' // }, // { // id: 'sceneID', // name: 'Scene', // type: 'select', // value: sceneID, // values: defaultSceneValues // }, // { // id: 'displayIDs', // name: 'Displays', // type: 'select', // multi: true, // value: displayIDs, // values: [] // } // ]; // getConnection(connectionID, () => editorAPI.setFields(fields)); // }); // function getBaseURL(connection) { // if (connection != null) { // var addressString = connection.properties.address; // var address = // !addressString.startsWith('http://') && !addressString.startsWith('https://') // ? `https://${addressString}` // : addressString; // var fullQuery = `${address}:${connection.properties.port}/api/v1/${connection.properties.key}/${connection // .properties.channel}`; // return fullQuery; // } // return null; // } // }; // interface Publish_Properties { // connectionID: string; // sceneID: string; // displayIDs: string[]; // } // interface Channel_Scene { // id: string; // text: string; // } // interface Channel_Display { // id: string; // text: string; // scene: string; // } //# sourceMappingURL=publish.js.map