From c195f483228f9806aafaca4b9e0b4bf07360dfbf Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Sat, 6 Nov 2021 13:56:15 -0700 Subject: [PATCH] webhook: fix mixin late init --- plugins/webhook/package-lock.json | 4 ++-- plugins/webhook/package.json | 2 +- plugins/webhook/src/main.ts | 7 +++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/plugins/webhook/package-lock.json b/plugins/webhook/package-lock.json index a1d19391a..ef0de1def 100644 --- a/plugins/webhook/package-lock.json +++ b/plugins/webhook/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/webhook", - "version": "0.0.9", + "version": "0.0.10", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/webhook", - "version": "0.0.9", + "version": "0.0.10", "dependencies": { "@types/node": "^16.6.1" }, diff --git a/plugins/webhook/package.json b/plugins/webhook/package.json index 1508fe9dc..16f321ced 100644 --- a/plugins/webhook/package.json +++ b/plugins/webhook/package.json @@ -33,5 +33,5 @@ "devDependencies": { "@scrypted/sdk": "file:../../sdk" }, - "version": "0.0.9" + "version": "0.0.10" } diff --git a/plugins/webhook/src/main.ts b/plugins/webhook/src/main.ts index e4c6f802b..6487d9315 100644 --- a/plugins/webhook/src/main.ts +++ b/plugins/webhook/src/main.ts @@ -80,7 +80,7 @@ class WebhookMixin extends SettingsMixinDeviceBase { async maybeSendMediaObject(response: HttpResponse, value: any, method: string) { if (!mediaObjectMethods.includes(method)) { - response?.send(value.toString()); + response?.send(value?.toString()); return; } @@ -149,7 +149,7 @@ class WebhookPlugin extends ScryptedDeviceBase implements Settings, MixinProvide const pathSegments = relPath.split('/'); const id = pathSegments[1]; - const device = systemManager.getDeviceById(id); + const device = systemManager.getDeviceById(id); this.console.log('device', id, device.name); if (!device.mixins.includes(this.id)) { @@ -160,6 +160,9 @@ class WebhookPlugin extends ScryptedDeviceBase implements Settings, MixinProvide return; } + if (!this.createdMixins.has(id)) { + await device.getSettings(); + } const mixin = this.createdMixins.get(id); mixin.handle(request, response, device, pathSegments); }