webhook: ensure response is sent before onRequest returns

This commit is contained in:
Koushik Dutta
2023-11-21 22:54:36 -08:00
parent 756585ae95
commit aedcc0709b
3 changed files with 7 additions and 7 deletions

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/webhook",
"version": "0.0.21",
"version": "0.0.22",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@scrypted/webhook",
"version": "0.0.21",
"version": "0.0.22",
"hasInstallScript": true,
"dependencies": {
"@types/node": "^16.6.1"

View File

@@ -35,5 +35,5 @@
"devDependencies": {
"@scrypted/sdk": "file:../../sdk"
},
"version": "0.0.21"
"version": "0.0.22"
}

View File

@@ -120,14 +120,14 @@ class WebhookMixin extends SettingsMixinDeviceBase<Settings> {
});
}
else {
this.maybeSendMediaObject(response, result, methodOrProperty);
await this.maybeSendMediaObject(response, result, methodOrProperty);
}
}
catch (e) {
this.console.error('webhook action error', e);
response.send('Internal Error', {
code: 500,
})
});
}
}
else if (allInterfaceProperties.includes(methodOrProperty)) {
@@ -147,7 +147,7 @@ class WebhookMixin extends SettingsMixinDeviceBase<Settings> {
this.console.error('Unknown method or property', methodOrProperty);
response.send('Not Found', {
code: 404,
})
});
}
}
}
@@ -183,7 +183,7 @@ class WebhookPlugin extends ScryptedDeviceBase implements Settings, MixinProvide
});
return;
}
mixin.handle(request, response, device, pathSegments);
await mixin.handle(request, response, device, pathSegments);
}
onRequest(request: HttpRequest, response: HttpResponse): Promise<void> {