diff --git a/packages/backend/src/apps/wordpress/triggers/new-comment/index.js b/packages/backend/src/apps/wordpress/triggers/new-comment/index.js index 3ab2423e..1f597fdb 100644 --- a/packages/backend/src/apps/wordpress/triggers/new-comment/index.js +++ b/packages/backend/src/apps/wordpress/triggers/new-comment/index.js @@ -4,6 +4,7 @@ export default defineTrigger({ name: 'New comment', key: 'newComment', description: 'Triggers when a new comment is created.', + pollInterval: 15, arguments: [ { label: 'Status', diff --git a/packages/backend/src/apps/wordpress/triggers/new-page/index.js b/packages/backend/src/apps/wordpress/triggers/new-page/index.js index 3fb5086e..4878680d 100644 --- a/packages/backend/src/apps/wordpress/triggers/new-page/index.js +++ b/packages/backend/src/apps/wordpress/triggers/new-page/index.js @@ -3,6 +3,7 @@ import defineTrigger from '../../../../helpers/define-trigger.js'; export default defineTrigger({ name: 'New page', key: 'newPage', + pollInterval: 15, description: 'Triggers when a new page is created.', arguments: [ { diff --git a/packages/backend/src/apps/wordpress/triggers/new-post/index.js b/packages/backend/src/apps/wordpress/triggers/new-post/index.js index 8b8dec79..e1814bc7 100644 --- a/packages/backend/src/apps/wordpress/triggers/new-post/index.js +++ b/packages/backend/src/apps/wordpress/triggers/new-post/index.js @@ -3,6 +3,7 @@ import defineTrigger from '../../../../helpers/define-trigger.js'; export default defineTrigger({ name: 'New post', key: 'newPost', + pollInterval: 15, description: 'Triggers when a new post is created.', arguments: [ { diff --git a/packages/backend/src/apps/youtube/triggers/new-video-by-search/index.js b/packages/backend/src/apps/youtube/triggers/new-video-by-search/index.js index 13ed2733..4c7c6450 100644 --- a/packages/backend/src/apps/youtube/triggers/new-video-by-search/index.js +++ b/packages/backend/src/apps/youtube/triggers/new-video-by-search/index.js @@ -3,6 +3,7 @@ import defineTrigger from '../../../../helpers/define-trigger.js'; export default defineTrigger({ name: 'New video by search', key: 'newVideoBySearch', + pollInterval: 15, description: 'Triggers when a new video is uploaded that matches a specific search string.', arguments: [ diff --git a/packages/backend/src/apps/youtube/triggers/new-video-in-channel/index.js b/packages/backend/src/apps/youtube/triggers/new-video-in-channel/index.js index 2bcc51a5..c048d521 100644 --- a/packages/backend/src/apps/youtube/triggers/new-video-in-channel/index.js +++ b/packages/backend/src/apps/youtube/triggers/new-video-in-channel/index.js @@ -3,6 +3,7 @@ import defineTrigger from '../../../../helpers/define-trigger.js'; export default defineTrigger({ name: 'New video in channel', key: 'newVideoInChannel', + pollInterval: 15, description: 'Triggers when a new video is published to a specific Youtube channel.', arguments: [ diff --git a/packages/backend/src/helpers/define-trigger.js b/packages/backend/src/helpers/define-trigger.js index 008bdf18..22ff34ab 100644 --- a/packages/backend/src/helpers/define-trigger.js +++ b/packages/backend/src/helpers/define-trigger.js @@ -1,3 +1,27 @@ +import logger from './logger.js'; + export default function defineTrigger(triggerDefinition) { + const isWebhookOrPoll = + triggerDefinition.pollInterval || triggerDefinition.type === 'webhook'; + + const schedulerTriggers = [ + 'everyHour', + 'everyDay', + 'everyWeek', + 'everyMonth', + ]; + + const isSchedulerTrigger = schedulerTriggers.includes(triggerDefinition.key); + + const haveValidTriggerType = isWebhookOrPoll || isSchedulerTrigger; + + if (!haveValidTriggerType) { + logger.info(triggerDefinition); + + throw new Error( + `Trigger must have a poll interval or be a webhook for ${triggerDefinition.key}` + ); + } + return triggerDefinition; }