Fixing issue with automation webhook URL being undefined.
This commit is contained in:
parent
1dbc56adf4
commit
6e0f18de87
|
@ -16,11 +16,13 @@
|
||||||
$: automation = $automationStore.selectedAutomation?.automation
|
$: automation = $automationStore.selectedAutomation?.automation
|
||||||
|
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
// save the automation initially
|
if (!automation?.definition?.trigger?.inputs.schemaUrl) {
|
||||||
await automationStore.actions.save({
|
// save the automation initially
|
||||||
instanceId,
|
await automationStore.actions.save({
|
||||||
automation,
|
instanceId,
|
||||||
})
|
automation,
|
||||||
|
})
|
||||||
|
}
|
||||||
interval = setInterval(async () => {
|
interval = setInterval(async () => {
|
||||||
await automationStore.actions.fetch()
|
await automationStore.actions.fetch()
|
||||||
const outputs = automation?.definition?.trigger.schema.outputs?.properties
|
const outputs = automation?.definition?.trigger.schema.outputs?.properties
|
||||||
|
|
|
@ -9,6 +9,9 @@
|
||||||
$: appUrl = $hostingStore.appUrl
|
$: appUrl = $hostingStore.appUrl
|
||||||
|
|
||||||
function fullWebhookURL(uri) {
|
function fullWebhookURL(uri) {
|
||||||
|
if (!uri) {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
if (production) {
|
if (production) {
|
||||||
return `${appUrl}/${uri}`
|
return `${appUrl}/${uri}`
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -88,6 +88,8 @@ async function checkForCronTriggers({ appId, oldAuto, newAuto }) {
|
||||||
async function checkForWebhooks({ appId, oldAuto, newAuto }) {
|
async function checkForWebhooks({ appId, oldAuto, newAuto }) {
|
||||||
const oldTrigger = oldAuto ? oldAuto.definition.trigger : null
|
const oldTrigger = oldAuto ? oldAuto.definition.trigger : null
|
||||||
const newTrigger = newAuto ? newAuto.definition.trigger : null
|
const newTrigger = newAuto ? newAuto.definition.trigger : null
|
||||||
|
const triggerChanged =
|
||||||
|
oldTrigger && newTrigger && oldTrigger.id !== newTrigger.id
|
||||||
function isWebhookTrigger(auto) {
|
function isWebhookTrigger(auto) {
|
||||||
return (
|
return (
|
||||||
auto &&
|
auto &&
|
||||||
|
@ -98,25 +100,32 @@ async function checkForWebhooks({ appId, oldAuto, newAuto }) {
|
||||||
// need to delete webhook
|
// need to delete webhook
|
||||||
if (
|
if (
|
||||||
isWebhookTrigger(oldAuto) &&
|
isWebhookTrigger(oldAuto) &&
|
||||||
!isWebhookTrigger(newAuto) &&
|
(!isWebhookTrigger(newAuto) || triggerChanged) &&
|
||||||
oldTrigger.webhookId
|
oldTrigger.webhookId
|
||||||
) {
|
) {
|
||||||
let db = new CouchDB(appId)
|
try {
|
||||||
// need to get the webhook to get the rev
|
let db = new CouchDB(appId)
|
||||||
const webhook = await db.get(oldTrigger.webhookId)
|
// need to get the webhook to get the rev
|
||||||
const ctx = {
|
const webhook = await db.get(oldTrigger.webhookId)
|
||||||
appId,
|
const ctx = {
|
||||||
params: { id: webhook._id, rev: webhook._rev },
|
appId,
|
||||||
|
params: { id: webhook._id, rev: webhook._rev },
|
||||||
|
}
|
||||||
|
// might be updating - reset the inputs to remove the URLs
|
||||||
|
if (newTrigger) {
|
||||||
|
delete newTrigger.webhookId
|
||||||
|
newTrigger.inputs = {}
|
||||||
|
}
|
||||||
|
await webhooks.destroy(ctx)
|
||||||
|
} catch (err) {
|
||||||
|
// don't worry about not being able to delete, if it doesn't exist all good
|
||||||
}
|
}
|
||||||
// might be updating - reset the inputs to remove the URLs
|
|
||||||
if (newTrigger) {
|
|
||||||
delete newTrigger.webhookId
|
|
||||||
newTrigger.inputs = {}
|
|
||||||
}
|
|
||||||
await webhooks.destroy(ctx)
|
|
||||||
}
|
}
|
||||||
// need to create webhook
|
// need to create webhook
|
||||||
else if (!isWebhookTrigger(oldAuto) && isWebhookTrigger(newAuto)) {
|
if (
|
||||||
|
(!isWebhookTrigger(oldAuto) || triggerChanged) &&
|
||||||
|
isWebhookTrigger(newAuto)
|
||||||
|
) {
|
||||||
const ctx = {
|
const ctx = {
|
||||||
appId,
|
appId,
|
||||||
request: {
|
request: {
|
||||||
|
|
Loading…
Reference in New Issue