lavva.exalushome
Version:
Library implementing communication and abstraction layers for ExalusHome system
68 lines • 3.75 kB
JavaScript
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