homebridge-plugin-asus-vpn
Version:
A switch to on and off the vpn.
29 lines • 1.55 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AsusVPNPlatformAccessory = void 0;
const constant_1 = require("./domain/constant");
class AsusVPNPlatformAccessory {
constructor(platform, accessory, asusRouterService, asusRouterUsecase) {
this.platform = platform;
this.accessory = accessory;
this.asusRouterService = asusRouterService;
this.asusRouterUsecase = asusRouterUsecase;
this.accessory.getService(this.platform.Service.AccessoryInformation)
.setCharacteristic(this.platform.Characteristic.Manufacturer, 'Asus')
.setCharacteristic(this.platform.Characteristic.Model, 'VPN')
.setCharacteristic(this.platform.Characteristic.SerialNumber, 'Serial');
this.service = this.accessory.getService(this.platform.Service.Switch) || this.accessory.addService(this.platform.Service.Switch);
this.service.setCharacteristic(this.platform.Characteristic.Name, accessory.context.name);
this.service.getCharacteristic(this.platform.Characteristic.On)
.onSet(this.setOn.bind(this))
.onGet(this.getOn.bind(this));
}
async setOn(value) {
await this.asusRouterUsecase.toggleVpn(this.asusRouterService, value);
}
async getOn() {
return await this.asusRouterUsecase.getVpnConnectionStatus(this.asusRouterService) === constant_1.VpnConnectionStatus.CONNECTED;
}
}
exports.AsusVPNPlatformAccessory = AsusVPNPlatformAccessory;
//# sourceMappingURL=platformAccessory.js.map