UNPKG

@olegivaniv/n8n-nodes-overkiz-tahoma

Version:

This is an n8n community node. It lets you use Overkiz (Tahoma) in your n8n workflows.

97 lines 3.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getObjectCurrentState = exports.getObjectAvailableCommands = exports.getObjectAvailableStates = exports.getSingleObject = exports.getUsedUIClasses = exports.getAllObjects = exports.getOverkizApi = exports.supportedDeviceTypes = void 0; const n8n_workflow_1 = require("n8n-workflow"); const overkiz_api_1 = require("overkiz-api"); const light_1 = require("./controllers/light"); const blinds_1 = require("./controllers/blinds"); const apiInstances = {}; const supportedDeviceCommands = { ...blinds_1.blindsCommands, ...light_1.lightsCommands, }; exports.supportedDeviceTypes = Object.keys(supportedDeviceCommands); function simplifyObject(object) { const simplifiedObject = { name: object.name, enabled: object.enabled, available: object.available, type: object.type, URL: object.URL, widget: object.widget, states: object.states, oid: object.oid, definition: object.definition, attributes: object.attributes, exec: async (...commands) => object.exec(...commands), refresh: async (stateName) => object.refreshState(stateName), refreshAll: async () => object.refreshStates(), getStateValue: (stateName) => object.getStateValue(stateName), }; return simplifiedObject; } async function getOverkizApi() { const credentials = await this.getCredentials('overkizApi'); if (credentials === undefined) { throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No credentials got returned!'); } const hostname = credentials.hostname; const email = credentials.email; const password = credentials.password; const instantiatedApi = apiInstances[email]; if (instantiatedApi) { return instantiatedApi; } const api = new overkiz_api_1.API({ host: hostname, polling: { always: false, interval: -1, }, platformLoginHandler: new overkiz_api_1.DefaultLoginHandler(email, password), }); apiInstances[email] = api; return api; } exports.getOverkizApi = getOverkizApi; async function getAllObjects() { const api = await getOverkizApi.call(this); const objects = await api.getObjects(); return objects.map((object) => simplifyObject(object)); } exports.getAllObjects = getAllObjects; async function getUsedUIClasses() { const objects = await getAllObjects.call(this); const types = objects.map((object) => { const uiClass = object.definition.uiClass; return uiClass; }); return [...new Set(types)]; } exports.getUsedUIClasses = getUsedUIClasses; async function getSingleObject(objectURL) { const objects = await getAllObjects.call(this); const foundObject = objects.find((object) => object.URL === objectURL); return foundObject; } exports.getSingleObject = getSingleObject; async function getObjectAvailableStates(objectURL) { const object = await getSingleObject.call(this, objectURL); if (!object) return []; return object.definition.states; } exports.getObjectAvailableStates = getObjectAvailableStates; async function getObjectAvailableCommands(objectUiClass) { var _a, _b; return (_b = (_a = supportedDeviceCommands[objectUiClass]) === null || _a === void 0 ? void 0 : _a.commands) !== null && _b !== void 0 ? _b : []; } exports.getObjectAvailableCommands = getObjectAvailableCommands; async function getObjectCurrentState(objectURL) { const object = await getSingleObject.call(this, objectURL); if (!object) return []; return object.states; } exports.getObjectCurrentState = getObjectCurrentState; //# sourceMappingURL=GenericFunctions.js.map