UNPKG

homebridge-plugin-asus-vpn

Version:
48 lines 2.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AsusVPNPlatform = void 0; const platformAccessory_js_1 = require("./platformAccessory.js"); const settings_js_1 = require("./settings.js"); const service_1 = require("./adapter/service"); const usecase_1 = require("./domain/usecase"); class AsusVPNPlatform { constructor(log, config, api) { this.log = log; this.config = config; this.api = api; this.accessories = []; this.Service = api.hap.Service; this.Characteristic = api.hap.Characteristic; const { routerIp, loginAuthorizationToken, vpnConnectionName, vpnConnectionType, } = this.config; this.routerIp = routerIp; this.loginAuthorizationToken = loginAuthorizationToken; this.vpnConnectionName = vpnConnectionName; this.vpnConnectionType = vpnConnectionType; this.log.debug('Finished initializing platform:', this.config.name); this.api.on("didFinishLaunching", async () => { log.debug('Executed didFinishLaunching callback'); await this.createAsusVPNService(); }); } configureAccessory(accessory) { this.accessories.push(accessory); } async createAsusVPNService() { const asusRouterHttpService = new service_1.AsusRouterHttpService(this.routerIp, this.loginAuthorizationToken, this.vpnConnectionName, this.vpnConnectionType); await asusRouterHttpService.login(); const asusRouterService = new service_1.AsusRouterService(asusRouterHttpService); const asusRouterUsecase = new usecase_1.AsusRouterUsecase(); const existingAccessory = this.accessories[0]; if (existingAccessory) { new platformAccessory_js_1.AsusVPNPlatformAccessory(this, existingAccessory, asusRouterService, asusRouterUsecase); } else { const accessory = new this.api.platformAccessory(this.vpnConnectionName, 'da67df50-6f1d-46ec-9c1c-6acd91be4bef'); accessory.context.name = this.vpnConnectionName; new platformAccessory_js_1.AsusVPNPlatformAccessory(this, accessory, asusRouterService, asusRouterUsecase); this.api.registerPlatformAccessories(settings_js_1.PLUGIN_NAME, settings_js_1.PLATFORM_NAME, [accessory]); } } } exports.AsusVPNPlatform = AsusVPNPlatform; //# sourceMappingURL=platform.js.map