UNPKG

lavva.exalushome

Version:

Library implementing communication and abstraction layers for ExalusHome system

68 lines 3.75 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { Api } from "../../Api"; import { DependencyContainer } from "../../DependencyContainer"; import { ControllerConfigurationService } from "../Controller/ControllerConfigurationService"; import { DeviceTaskExecutionResult } from "./TaskExecutionResult"; export class ManuallyPairedDevicesService { constructor() { this._manualDeviceProtocolServices = new Map(); } GetServiceName() { return ManuallyPairedDevicesService.ServiceName; } RegisterManuallyPairedDevicesProtocol(service) { var _a; (_a = DependencyContainer.Log) === null || _a === void 0 ? void 0 : _a.Debug(ManuallyPairedDevicesService.ServiceName, `Registering new manual device protocol service: ${service.GetServiceName()}`); this._manualDeviceProtocolServices.set(service.GetServiceName(), service); } GetDevicesForManualPairingAsync(guids) { return __awaiter(this, void 0, void 0, function* () { const protocolServices = [...this._manualDeviceProtocolServices.values()]; const result = []; if (guids != null) { if (Array.isArray(guids)) { for (let i = 0; i < protocolServices.length; i++) { if (guids.any(extGuid => extGuid == protocolServices[i].ProtocolExtensionGuid)) result.push(...(yield protocolServices[i].GetDevicesForManualPairingAsync())); } } else { const service = protocolServices.find(serv => serv.ProtocolExtensionGuid == guids); if (service != null) result.push(...(yield service.GetDevicesForManualPairingAsync())); } } else { for (let i = 0; i < protocolServices.length; i++) { result.push(...(yield protocolServices[i].GetDevicesForManualPairingAsync())); } } return result; }); } AddManuallyPairedDeviceAsync(device) { return __awaiter(this, void 0, void 0, function* () { var _a; const protocols = [...this._manualDeviceProtocolServices.values()]; const service = protocols.find(serv => serv.ProtocolExtensionGuid == device.ProtocolExtensionGuid); if (service != null) return service.AddManuallyPairedDeviceAsync(device); (_a = DependencyContainer.Log) === null || _a === void 0 ? void 0 : _a.Error(ManuallyPairedDevicesService.ServiceName, `EXIT CONFIGURATION MODE WILL BE FIRED! AddManuallyPairedDeviceAsync()`); Api.Get(ControllerConfigurationService.ServiceName).ExitConfigurationModeAsync(); return DeviceTaskExecutionResult.Failed; }); } GetRegisteredProtocolGuids() { return [...this._manualDeviceProtocolServices.values()].map(e => e.ProtocolExtensionGuid); } } ManuallyPairedDevicesService.ServiceName = "ManualDeviceService"; //# sourceMappingURL=ManuallyPairedDevicesService.js.map