Merge pull request #667 from automatisch/refactor/user-args-for-actions
refactor: Specify only the arguments for trigger definitions
This commit is contained in:
@@ -6,16 +6,6 @@ export default defineTrigger({
|
||||
pollInterval: 15,
|
||||
key: 'new-albums',
|
||||
description: 'Triggers when you create a new album.',
|
||||
substeps: [
|
||||
{
|
||||
key: 'chooseConnection',
|
||||
name: 'Choose connection',
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
},
|
||||
],
|
||||
|
||||
async run($) {
|
||||
await newAlbums($);
|
||||
|
@@ -6,16 +6,6 @@ export default defineTrigger({
|
||||
pollInterval: 15,
|
||||
key: 'newFavoritePhotos',
|
||||
description: 'Triggers when you favorite a photo.',
|
||||
substeps: [
|
||||
{
|
||||
key: 'chooseConnection',
|
||||
name: 'Choose connection',
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
},
|
||||
],
|
||||
|
||||
async run($) {
|
||||
await newFavoritePhotos($);
|
||||
|
@@ -6,37 +6,23 @@ export default defineTrigger({
|
||||
pollInterval: 15,
|
||||
key: 'newPhotosInAlbum',
|
||||
description: 'Triggers when you add a new photo in an album.',
|
||||
substeps: [
|
||||
arguments: [
|
||||
{
|
||||
key: 'chooseConnection',
|
||||
name: 'Choose connection',
|
||||
},
|
||||
{
|
||||
key: 'chooseTrigger',
|
||||
name: 'Set up a trigger',
|
||||
arguments: [
|
||||
{
|
||||
label: 'Album',
|
||||
key: 'album',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
variables: false,
|
||||
source: {
|
||||
type: 'query',
|
||||
name: 'getData',
|
||||
arguments: [
|
||||
{
|
||||
name: 'key',
|
||||
value: 'listAlbums',
|
||||
},
|
||||
],
|
||||
label: 'Album',
|
||||
key: 'album',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
variables: false,
|
||||
source: {
|
||||
type: 'query',
|
||||
name: 'getData',
|
||||
arguments: [
|
||||
{
|
||||
name: 'key',
|
||||
value: 'listAlbums',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
|
||||
|
@@ -6,16 +6,6 @@ export default defineTrigger({
|
||||
pollInterval: 15,
|
||||
key: 'newPhotos',
|
||||
description: 'Triggers when you add a new photo.',
|
||||
substeps: [
|
||||
{
|
||||
key: 'chooseConnection',
|
||||
name: 'Choose connection',
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
},
|
||||
],
|
||||
|
||||
async run($) {
|
||||
await newPhotos($);
|
||||
|
@@ -6,91 +6,77 @@ export default defineTrigger({
|
||||
key: 'newIssues',
|
||||
pollInterval: 15,
|
||||
description: 'Triggers when a new issue is created',
|
||||
substeps: [
|
||||
arguments: [
|
||||
{
|
||||
key: 'chooseConnection',
|
||||
name: 'Choose connection',
|
||||
label: 'Repo',
|
||||
key: 'repo',
|
||||
type: 'dropdown' as const,
|
||||
required: false,
|
||||
variables: false,
|
||||
source: {
|
||||
type: 'query',
|
||||
name: 'getData',
|
||||
arguments: [
|
||||
{
|
||||
name: 'key',
|
||||
value: 'listRepos',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
key: 'chooseTrigger',
|
||||
name: 'Set up a trigger',
|
||||
arguments: [
|
||||
label: 'Which types of issues should this trigger on?',
|
||||
key: 'issueType',
|
||||
type: 'dropdown' as const,
|
||||
description: 'Defaults to any issue you can see.',
|
||||
required: true,
|
||||
variables: false,
|
||||
value: 'all',
|
||||
options: [
|
||||
{
|
||||
label: 'Repo',
|
||||
key: 'repo',
|
||||
type: 'dropdown' as const,
|
||||
required: false,
|
||||
variables: false,
|
||||
source: {
|
||||
type: 'query',
|
||||
name: 'getData',
|
||||
arguments: [
|
||||
{
|
||||
name: 'key',
|
||||
value: 'listRepos',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Which types of issues should this trigger on?',
|
||||
key: 'issueType',
|
||||
type: 'dropdown' as const,
|
||||
description: 'Defaults to any issue you can see.',
|
||||
required: true,
|
||||
variables: false,
|
||||
label: 'Any issue you can see',
|
||||
value: 'all',
|
||||
options: [
|
||||
{
|
||||
label: 'Any issue you can see',
|
||||
value: 'all',
|
||||
},
|
||||
{
|
||||
label: 'Only issues assigned to you',
|
||||
value: 'assigned',
|
||||
},
|
||||
{
|
||||
label: 'Only issues created by you',
|
||||
value: 'created',
|
||||
},
|
||||
{
|
||||
label: `Only issues you're mentioned in`,
|
||||
value: 'mentioned',
|
||||
},
|
||||
{
|
||||
label: `Only issues you're subscribed to`,
|
||||
value: 'subscribed',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Label',
|
||||
key: 'label',
|
||||
type: 'dropdown' as const,
|
||||
description: 'Only trigger on issues when this label is added.',
|
||||
required: false,
|
||||
variables: false,
|
||||
dependsOn: ['parameters.repo'],
|
||||
source: {
|
||||
type: 'query',
|
||||
name: 'getData',
|
||||
arguments: [
|
||||
{
|
||||
name: 'key',
|
||||
value: 'listLabels',
|
||||
},
|
||||
{
|
||||
name: 'parameters.repo',
|
||||
value: '{parameters.repo}',
|
||||
},
|
||||
],
|
||||
},
|
||||
label: 'Only issues assigned to you',
|
||||
value: 'assigned',
|
||||
},
|
||||
{
|
||||
label: 'Only issues created by you',
|
||||
value: 'created',
|
||||
},
|
||||
{
|
||||
label: `Only issues you're mentioned in`,
|
||||
value: 'mentioned',
|
||||
},
|
||||
{
|
||||
label: `Only issues you're subscribed to`,
|
||||
value: 'subscribed',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
label: 'Label',
|
||||
key: 'label',
|
||||
type: 'dropdown' as const,
|
||||
description: 'Only trigger on issues when this label is added.',
|
||||
required: false,
|
||||
variables: false,
|
||||
dependsOn: ['parameters.repo'],
|
||||
source: {
|
||||
type: 'query',
|
||||
name: 'getData',
|
||||
arguments: [
|
||||
{
|
||||
name: 'key',
|
||||
value: 'listLabels',
|
||||
},
|
||||
{
|
||||
name: 'parameters.repo',
|
||||
value: '{parameters.repo}',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
|
||||
|
@@ -6,37 +6,23 @@ export default defineTrigger({
|
||||
key: 'newPullRequests',
|
||||
pollInterval: 15,
|
||||
description: 'Triggers when a new pull request is created',
|
||||
substeps: [
|
||||
arguments: [
|
||||
{
|
||||
key: 'chooseConnection',
|
||||
name: 'Choose connection',
|
||||
},
|
||||
{
|
||||
key: 'chooseTrigger',
|
||||
name: 'Set up a trigger',
|
||||
arguments: [
|
||||
{
|
||||
label: 'Repo',
|
||||
key: 'repo',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
variables: false,
|
||||
source: {
|
||||
type: 'query',
|
||||
name: 'getData',
|
||||
arguments: [
|
||||
{
|
||||
name: 'key',
|
||||
value: 'listRepos',
|
||||
},
|
||||
],
|
||||
label: 'Repo',
|
||||
key: 'repo',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
variables: false,
|
||||
source: {
|
||||
type: 'query',
|
||||
name: 'getData',
|
||||
arguments: [
|
||||
{
|
||||
name: 'key',
|
||||
value: 'listRepos',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
|
||||
|
@@ -6,37 +6,23 @@ export default defineTrigger({
|
||||
key: 'newStargazers',
|
||||
pollInterval: 15,
|
||||
description: 'Triggers when a user stars a repository',
|
||||
substeps: [
|
||||
arguments: [
|
||||
{
|
||||
key: 'chooseConnection',
|
||||
name: 'Choose connection',
|
||||
},
|
||||
{
|
||||
key: 'chooseTrigger',
|
||||
name: 'Set up a trigger',
|
||||
arguments: [
|
||||
{
|
||||
label: 'Repo',
|
||||
key: 'repo',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
variables: false,
|
||||
source: {
|
||||
type: 'query',
|
||||
name: 'getData',
|
||||
arguments: [
|
||||
{
|
||||
name: 'key',
|
||||
value: 'listRepos',
|
||||
},
|
||||
],
|
||||
label: 'Repo',
|
||||
key: 'repo',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
variables: false,
|
||||
source: {
|
||||
type: 'query',
|
||||
name: 'getData',
|
||||
arguments: [
|
||||
{
|
||||
name: 'key',
|
||||
value: 'listRepos',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
|
||||
|
@@ -6,37 +6,23 @@ export default defineTrigger({
|
||||
key: 'newWatchers',
|
||||
pollInterval: 15,
|
||||
description: 'Triggers when a user watches a repository',
|
||||
substeps: [
|
||||
arguments: [
|
||||
{
|
||||
key: 'chooseConnection',
|
||||
name: 'Choose connection',
|
||||
},
|
||||
{
|
||||
key: 'chooseTrigger',
|
||||
name: 'Set up a trigger',
|
||||
arguments: [
|
||||
{
|
||||
label: 'Repo',
|
||||
key: 'repo',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
variables: false,
|
||||
source: {
|
||||
type: 'query',
|
||||
name: 'getData',
|
||||
arguments: [
|
||||
{
|
||||
name: 'key',
|
||||
value: 'listRepos',
|
||||
},
|
||||
],
|
||||
label: 'Repo',
|
||||
key: 'repo',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
variables: false,
|
||||
source: {
|
||||
type: 'query',
|
||||
name: 'getData',
|
||||
arguments: [
|
||||
{
|
||||
name: 'key',
|
||||
value: 'listRepos',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
|
||||
|
@@ -6,24 +6,14 @@ export default defineTrigger({
|
||||
key: 'newItemsInFeed',
|
||||
description: 'Triggers on new RSS feed items.',
|
||||
pollInterval: 15,
|
||||
substeps: [
|
||||
arguments: [
|
||||
{
|
||||
key: 'chooseTrigger',
|
||||
name: 'Set up trigger',
|
||||
arguments: [
|
||||
{
|
||||
label: 'Feed URL',
|
||||
key: 'feedUrl',
|
||||
type: 'string' as const,
|
||||
required: true,
|
||||
description: 'Paste your publicly accessible RSS URL here.',
|
||||
variables: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
label: 'Feed URL',
|
||||
key: 'feedUrl',
|
||||
type: 'string' as const,
|
||||
required: true,
|
||||
description: 'Paste your publicly accessible RSS URL here.',
|
||||
variables: false,
|
||||
},
|
||||
],
|
||||
|
||||
|
@@ -9,141 +9,131 @@ export default defineTrigger({
|
||||
name: 'Every day',
|
||||
key: 'everyDay',
|
||||
description: 'Triggers every day.',
|
||||
substeps: [
|
||||
arguments: [
|
||||
{
|
||||
key: 'chooseTrigger',
|
||||
name: 'Set up a trigger',
|
||||
arguments: [
|
||||
label: 'Trigger on weekends?',
|
||||
key: 'triggersOnWeekend',
|
||||
type: 'dropdown' as const,
|
||||
description: 'Should this flow trigger on Saturday and Sunday?',
|
||||
required: true,
|
||||
value: true,
|
||||
variables: false,
|
||||
options: [
|
||||
{
|
||||
label: 'Trigger on weekends?',
|
||||
key: 'triggersOnWeekend',
|
||||
type: 'dropdown' as const,
|
||||
description: 'Should this flow trigger on Saturday and Sunday?',
|
||||
required: true,
|
||||
label: 'Yes',
|
||||
value: true,
|
||||
variables: false,
|
||||
options: [
|
||||
{
|
||||
label: 'Yes',
|
||||
value: true,
|
||||
},
|
||||
{
|
||||
label: 'No',
|
||||
value: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Time of day',
|
||||
key: 'hour',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
options: [
|
||||
{
|
||||
label: '00:00',
|
||||
value: 0,
|
||||
},
|
||||
{
|
||||
label: '01:00',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
label: '02:00',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
label: '03:00',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
label: '04:00',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
label: '05:00',
|
||||
value: 5,
|
||||
},
|
||||
{
|
||||
label: '06:00',
|
||||
value: 6,
|
||||
},
|
||||
{
|
||||
label: '07:00',
|
||||
value: 7,
|
||||
},
|
||||
{
|
||||
label: '08:00',
|
||||
value: 8,
|
||||
},
|
||||
{
|
||||
label: '09:00',
|
||||
value: 9,
|
||||
},
|
||||
{
|
||||
label: '10:00',
|
||||
value: 10,
|
||||
},
|
||||
{
|
||||
label: '11:00',
|
||||
value: 11,
|
||||
},
|
||||
{
|
||||
label: '12:00',
|
||||
value: 12,
|
||||
},
|
||||
{
|
||||
label: '13:00',
|
||||
value: 13,
|
||||
},
|
||||
{
|
||||
label: '14:00',
|
||||
value: 14,
|
||||
},
|
||||
{
|
||||
label: '15:00',
|
||||
value: 15,
|
||||
},
|
||||
{
|
||||
label: '16:00',
|
||||
value: 16,
|
||||
},
|
||||
{
|
||||
label: '17:00',
|
||||
value: 17,
|
||||
},
|
||||
{
|
||||
label: '18:00',
|
||||
value: 18,
|
||||
},
|
||||
{
|
||||
label: '19:00',
|
||||
value: 19,
|
||||
},
|
||||
{
|
||||
label: '20:00',
|
||||
value: 20,
|
||||
},
|
||||
{
|
||||
label: '21:00',
|
||||
value: 21,
|
||||
},
|
||||
{
|
||||
label: '22:00',
|
||||
value: 22,
|
||||
},
|
||||
{
|
||||
label: '23:00',
|
||||
value: 23,
|
||||
},
|
||||
],
|
||||
label: 'No',
|
||||
value: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
label: 'Time of day',
|
||||
key: 'hour',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
options: [
|
||||
{
|
||||
label: '00:00',
|
||||
value: 0,
|
||||
},
|
||||
{
|
||||
label: '01:00',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
label: '02:00',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
label: '03:00',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
label: '04:00',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
label: '05:00',
|
||||
value: 5,
|
||||
},
|
||||
{
|
||||
label: '06:00',
|
||||
value: 6,
|
||||
},
|
||||
{
|
||||
label: '07:00',
|
||||
value: 7,
|
||||
},
|
||||
{
|
||||
label: '08:00',
|
||||
value: 8,
|
||||
},
|
||||
{
|
||||
label: '09:00',
|
||||
value: 9,
|
||||
},
|
||||
{
|
||||
label: '10:00',
|
||||
value: 10,
|
||||
},
|
||||
{
|
||||
label: '11:00',
|
||||
value: 11,
|
||||
},
|
||||
{
|
||||
label: '12:00',
|
||||
value: 12,
|
||||
},
|
||||
{
|
||||
label: '13:00',
|
||||
value: 13,
|
||||
},
|
||||
{
|
||||
label: '14:00',
|
||||
value: 14,
|
||||
},
|
||||
{
|
||||
label: '15:00',
|
||||
value: 15,
|
||||
},
|
||||
{
|
||||
label: '16:00',
|
||||
value: 16,
|
||||
},
|
||||
{
|
||||
label: '17:00',
|
||||
value: 17,
|
||||
},
|
||||
{
|
||||
label: '18:00',
|
||||
value: 18,
|
||||
},
|
||||
{
|
||||
label: '19:00',
|
||||
value: 19,
|
||||
},
|
||||
{
|
||||
label: '20:00',
|
||||
value: 20,
|
||||
},
|
||||
{
|
||||
label: '21:00',
|
||||
value: 21,
|
||||
},
|
||||
{
|
||||
label: '22:00',
|
||||
value: 22,
|
||||
},
|
||||
{
|
||||
label: '23:00',
|
||||
value: 23,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
|
@@ -9,36 +9,26 @@ export default defineTrigger({
|
||||
name: 'Every hour',
|
||||
key: 'everyHour',
|
||||
description: 'Triggers every hour.',
|
||||
substeps: [
|
||||
arguments: [
|
||||
{
|
||||
key: 'chooseTrigger',
|
||||
name: 'Set up a trigger',
|
||||
arguments: [
|
||||
label: 'Trigger on weekends?',
|
||||
key: 'triggersOnWeekend',
|
||||
type: 'dropdown' as const,
|
||||
description: 'Should this flow trigger on Saturday and Sunday?',
|
||||
required: true,
|
||||
value: true,
|
||||
variables: false,
|
||||
options: [
|
||||
{
|
||||
label: 'Trigger on weekends?',
|
||||
key: 'triggersOnWeekend',
|
||||
type: 'dropdown' as const,
|
||||
description: 'Should this flow trigger on Saturday and Sunday?',
|
||||
required: true,
|
||||
label: 'Yes',
|
||||
value: true,
|
||||
variables: false,
|
||||
options: [
|
||||
{
|
||||
label: 'Yes',
|
||||
value: true,
|
||||
},
|
||||
{
|
||||
label: 'No',
|
||||
value: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'No',
|
||||
value: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
},
|
||||
],
|
||||
|
||||
getInterval(parameters: IGlobalVariable['step']['parameters']) {
|
||||
|
@@ -9,256 +9,246 @@ export default defineTrigger({
|
||||
name: 'Every month',
|
||||
key: 'everyMonth',
|
||||
description: 'Triggers every month.',
|
||||
substeps: [
|
||||
arguments: [
|
||||
{
|
||||
key: 'chooseTrigger',
|
||||
name: 'Set up a trigger',
|
||||
arguments: [
|
||||
label: 'Day of the month',
|
||||
key: 'day',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
options: [
|
||||
{
|
||||
label: 'Day of the month',
|
||||
key: 'day',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
options: [
|
||||
{
|
||||
label: '1',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
label: '2',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
label: '3',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
label: '4',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
label: '5',
|
||||
value: 5,
|
||||
},
|
||||
{
|
||||
label: '6',
|
||||
value: 6,
|
||||
},
|
||||
{
|
||||
label: '7',
|
||||
value: 7,
|
||||
},
|
||||
{
|
||||
label: '8',
|
||||
value: 8,
|
||||
},
|
||||
{
|
||||
label: '9',
|
||||
value: 9,
|
||||
},
|
||||
{
|
||||
label: '10',
|
||||
value: 10,
|
||||
},
|
||||
{
|
||||
label: '11',
|
||||
value: 11,
|
||||
},
|
||||
{
|
||||
label: '12',
|
||||
value: 12,
|
||||
},
|
||||
{
|
||||
label: '13',
|
||||
value: 13,
|
||||
},
|
||||
{
|
||||
label: '14',
|
||||
value: 14,
|
||||
},
|
||||
{
|
||||
label: '15',
|
||||
value: 15,
|
||||
},
|
||||
{
|
||||
label: '16',
|
||||
value: 16,
|
||||
},
|
||||
{
|
||||
label: '17',
|
||||
value: 17,
|
||||
},
|
||||
{
|
||||
label: '18',
|
||||
value: 18,
|
||||
},
|
||||
{
|
||||
label: '19',
|
||||
value: 19,
|
||||
},
|
||||
{
|
||||
label: '20',
|
||||
value: 20,
|
||||
},
|
||||
{
|
||||
label: '21',
|
||||
value: 21,
|
||||
},
|
||||
{
|
||||
label: '22',
|
||||
value: 22,
|
||||
},
|
||||
{
|
||||
label: '23',
|
||||
value: 23,
|
||||
},
|
||||
{
|
||||
label: '24',
|
||||
value: 24,
|
||||
},
|
||||
{
|
||||
label: '25',
|
||||
value: 25,
|
||||
},
|
||||
{
|
||||
label: '26',
|
||||
value: 26,
|
||||
},
|
||||
{
|
||||
label: '27',
|
||||
value: 27,
|
||||
},
|
||||
{
|
||||
label: '28',
|
||||
value: 28,
|
||||
},
|
||||
{
|
||||
label: '29',
|
||||
value: 29,
|
||||
},
|
||||
{
|
||||
label: '30',
|
||||
value: 30,
|
||||
},
|
||||
{
|
||||
label: '31',
|
||||
value: 31,
|
||||
},
|
||||
],
|
||||
label: '1',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
label: 'Time of day',
|
||||
key: 'hour',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
options: [
|
||||
{
|
||||
label: '00:00',
|
||||
value: 0,
|
||||
},
|
||||
{
|
||||
label: '01:00',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
label: '02:00',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
label: '03:00',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
label: '04:00',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
label: '05:00',
|
||||
value: 5,
|
||||
},
|
||||
{
|
||||
label: '06:00',
|
||||
value: 6,
|
||||
},
|
||||
{
|
||||
label: '07:00',
|
||||
value: 7,
|
||||
},
|
||||
{
|
||||
label: '08:00',
|
||||
value: 8,
|
||||
},
|
||||
{
|
||||
label: '09:00',
|
||||
value: 9,
|
||||
},
|
||||
{
|
||||
label: '10:00',
|
||||
value: 10,
|
||||
},
|
||||
{
|
||||
label: '11:00',
|
||||
value: 11,
|
||||
},
|
||||
{
|
||||
label: '12:00',
|
||||
value: 12,
|
||||
},
|
||||
{
|
||||
label: '13:00',
|
||||
value: 13,
|
||||
},
|
||||
{
|
||||
label: '14:00',
|
||||
value: 14,
|
||||
},
|
||||
{
|
||||
label: '15:00',
|
||||
value: 15,
|
||||
},
|
||||
{
|
||||
label: '16:00',
|
||||
value: 16,
|
||||
},
|
||||
{
|
||||
label: '17:00',
|
||||
value: 17,
|
||||
},
|
||||
{
|
||||
label: '18:00',
|
||||
value: 18,
|
||||
},
|
||||
{
|
||||
label: '19:00',
|
||||
value: 19,
|
||||
},
|
||||
{
|
||||
label: '20:00',
|
||||
value: 20,
|
||||
},
|
||||
{
|
||||
label: '21:00',
|
||||
value: 21,
|
||||
},
|
||||
{
|
||||
label: '22:00',
|
||||
value: 22,
|
||||
},
|
||||
{
|
||||
label: '23:00',
|
||||
value: 23,
|
||||
},
|
||||
],
|
||||
label: '2',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
label: '3',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
label: '4',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
label: '5',
|
||||
value: 5,
|
||||
},
|
||||
{
|
||||
label: '6',
|
||||
value: 6,
|
||||
},
|
||||
{
|
||||
label: '7',
|
||||
value: 7,
|
||||
},
|
||||
{
|
||||
label: '8',
|
||||
value: 8,
|
||||
},
|
||||
{
|
||||
label: '9',
|
||||
value: 9,
|
||||
},
|
||||
{
|
||||
label: '10',
|
||||
value: 10,
|
||||
},
|
||||
{
|
||||
label: '11',
|
||||
value: 11,
|
||||
},
|
||||
{
|
||||
label: '12',
|
||||
value: 12,
|
||||
},
|
||||
{
|
||||
label: '13',
|
||||
value: 13,
|
||||
},
|
||||
{
|
||||
label: '14',
|
||||
value: 14,
|
||||
},
|
||||
{
|
||||
label: '15',
|
||||
value: 15,
|
||||
},
|
||||
{
|
||||
label: '16',
|
||||
value: 16,
|
||||
},
|
||||
{
|
||||
label: '17',
|
||||
value: 17,
|
||||
},
|
||||
{
|
||||
label: '18',
|
||||
value: 18,
|
||||
},
|
||||
{
|
||||
label: '19',
|
||||
value: 19,
|
||||
},
|
||||
{
|
||||
label: '20',
|
||||
value: 20,
|
||||
},
|
||||
{
|
||||
label: '21',
|
||||
value: 21,
|
||||
},
|
||||
{
|
||||
label: '22',
|
||||
value: 22,
|
||||
},
|
||||
{
|
||||
label: '23',
|
||||
value: 23,
|
||||
},
|
||||
{
|
||||
label: '24',
|
||||
value: 24,
|
||||
},
|
||||
{
|
||||
label: '25',
|
||||
value: 25,
|
||||
},
|
||||
{
|
||||
label: '26',
|
||||
value: 26,
|
||||
},
|
||||
{
|
||||
label: '27',
|
||||
value: 27,
|
||||
},
|
||||
{
|
||||
label: '28',
|
||||
value: 28,
|
||||
},
|
||||
{
|
||||
label: '29',
|
||||
value: 29,
|
||||
},
|
||||
{
|
||||
label: '30',
|
||||
value: 30,
|
||||
},
|
||||
{
|
||||
label: '31',
|
||||
value: 31,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
label: 'Time of day',
|
||||
key: 'hour',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
options: [
|
||||
{
|
||||
label: '00:00',
|
||||
value: 0,
|
||||
},
|
||||
{
|
||||
label: '01:00',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
label: '02:00',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
label: '03:00',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
label: '04:00',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
label: '05:00',
|
||||
value: 5,
|
||||
},
|
||||
{
|
||||
label: '06:00',
|
||||
value: 6,
|
||||
},
|
||||
{
|
||||
label: '07:00',
|
||||
value: 7,
|
||||
},
|
||||
{
|
||||
label: '08:00',
|
||||
value: 8,
|
||||
},
|
||||
{
|
||||
label: '09:00',
|
||||
value: 9,
|
||||
},
|
||||
{
|
||||
label: '10:00',
|
||||
value: 10,
|
||||
},
|
||||
{
|
||||
label: '11:00',
|
||||
value: 11,
|
||||
},
|
||||
{
|
||||
label: '12:00',
|
||||
value: 12,
|
||||
},
|
||||
{
|
||||
label: '13:00',
|
||||
value: 13,
|
||||
},
|
||||
{
|
||||
label: '14:00',
|
||||
value: 14,
|
||||
},
|
||||
{
|
||||
label: '15:00',
|
||||
value: 15,
|
||||
},
|
||||
{
|
||||
label: '16:00',
|
||||
value: 16,
|
||||
},
|
||||
{
|
||||
label: '17:00',
|
||||
value: 17,
|
||||
},
|
||||
{
|
||||
label: '18:00',
|
||||
value: 18,
|
||||
},
|
||||
{
|
||||
label: '19:00',
|
||||
value: 19,
|
||||
},
|
||||
{
|
||||
label: '20:00',
|
||||
value: 20,
|
||||
},
|
||||
{
|
||||
label: '21:00',
|
||||
value: 21,
|
||||
},
|
||||
{
|
||||
label: '22:00',
|
||||
value: 22,
|
||||
},
|
||||
{
|
||||
label: '23:00',
|
||||
value: 23,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import { DateTime } from 'luxon';
|
||||
import { IGlobalVariable, IJSONValue } from '@automatisch/types';
|
||||
import { IGlobalVariable } from '@automatisch/types';
|
||||
import defineTrigger from '../../../../helpers/define-trigger';
|
||||
import cronTimes from '../../common/cron-times';
|
||||
import getNextCronDateTime from '../../common/get-next-cron-date-time';
|
||||
@@ -9,160 +9,150 @@ export default defineTrigger({
|
||||
name: 'Every week',
|
||||
key: 'everyWeek',
|
||||
description: 'Triggers every week.',
|
||||
substeps: [
|
||||
arguments: [
|
||||
{
|
||||
key: 'chooseTrigger',
|
||||
name: 'Set up a trigger',
|
||||
arguments: [
|
||||
label: 'Day of the week',
|
||||
key: 'weekday',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
options: [
|
||||
{
|
||||
label: 'Day of the week',
|
||||
key: 'weekday',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
options: [
|
||||
{
|
||||
label: 'Monday',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
label: 'Tuesday',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
label: 'Wednesday',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
label: 'Thursday',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
label: 'Friday',
|
||||
value: 5,
|
||||
},
|
||||
{
|
||||
label: 'Saturday',
|
||||
value: 6,
|
||||
},
|
||||
{
|
||||
label: 'Sunday',
|
||||
value: 0,
|
||||
},
|
||||
],
|
||||
label: 'Monday',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
label: 'Time of day',
|
||||
key: 'hour',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
options: [
|
||||
{
|
||||
label: '00:00',
|
||||
value: 0,
|
||||
},
|
||||
{
|
||||
label: '01:00',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
label: '02:00',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
label: '03:00',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
label: '04:00',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
label: '05:00',
|
||||
value: 5,
|
||||
},
|
||||
{
|
||||
label: '06:00',
|
||||
value: 6,
|
||||
},
|
||||
{
|
||||
label: '07:00',
|
||||
value: 7,
|
||||
},
|
||||
{
|
||||
label: '08:00',
|
||||
value: 8,
|
||||
},
|
||||
{
|
||||
label: '09:00',
|
||||
value: 9,
|
||||
},
|
||||
{
|
||||
label: '10:00',
|
||||
value: 10,
|
||||
},
|
||||
{
|
||||
label: '11:00',
|
||||
value: 11,
|
||||
},
|
||||
{
|
||||
label: '12:00',
|
||||
value: 12,
|
||||
},
|
||||
{
|
||||
label: '13:00',
|
||||
value: 13,
|
||||
},
|
||||
{
|
||||
label: '14:00',
|
||||
value: 14,
|
||||
},
|
||||
{
|
||||
label: '15:00',
|
||||
value: 15,
|
||||
},
|
||||
{
|
||||
label: '16:00',
|
||||
value: 16,
|
||||
},
|
||||
{
|
||||
label: '17:00',
|
||||
value: 17,
|
||||
},
|
||||
{
|
||||
label: '18:00',
|
||||
value: 18,
|
||||
},
|
||||
{
|
||||
label: '19:00',
|
||||
value: 19,
|
||||
},
|
||||
{
|
||||
label: '20:00',
|
||||
value: 20,
|
||||
},
|
||||
{
|
||||
label: '21:00',
|
||||
value: 21,
|
||||
},
|
||||
{
|
||||
label: '22:00',
|
||||
value: 22,
|
||||
},
|
||||
{
|
||||
label: '23:00',
|
||||
value: 23,
|
||||
},
|
||||
],
|
||||
label: 'Tuesday',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
label: 'Wednesday',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
label: 'Thursday',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
label: 'Friday',
|
||||
value: 5,
|
||||
},
|
||||
{
|
||||
label: 'Saturday',
|
||||
value: 6,
|
||||
},
|
||||
{
|
||||
label: 'Sunday',
|
||||
value: 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
label: 'Time of day',
|
||||
key: 'hour',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
value: null,
|
||||
variables: false,
|
||||
options: [
|
||||
{
|
||||
label: '00:00',
|
||||
value: 0,
|
||||
},
|
||||
{
|
||||
label: '01:00',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
label: '02:00',
|
||||
value: 2,
|
||||
},
|
||||
{
|
||||
label: '03:00',
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
label: '04:00',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
label: '05:00',
|
||||
value: 5,
|
||||
},
|
||||
{
|
||||
label: '06:00',
|
||||
value: 6,
|
||||
},
|
||||
{
|
||||
label: '07:00',
|
||||
value: 7,
|
||||
},
|
||||
{
|
||||
label: '08:00',
|
||||
value: 8,
|
||||
},
|
||||
{
|
||||
label: '09:00',
|
||||
value: 9,
|
||||
},
|
||||
{
|
||||
label: '10:00',
|
||||
value: 10,
|
||||
},
|
||||
{
|
||||
label: '11:00',
|
||||
value: 11,
|
||||
},
|
||||
{
|
||||
label: '12:00',
|
||||
value: 12,
|
||||
},
|
||||
{
|
||||
label: '13:00',
|
||||
value: 13,
|
||||
},
|
||||
{
|
||||
label: '14:00',
|
||||
value: 14,
|
||||
},
|
||||
{
|
||||
label: '15:00',
|
||||
value: 15,
|
||||
},
|
||||
{
|
||||
label: '16:00',
|
||||
value: 16,
|
||||
},
|
||||
{
|
||||
label: '17:00',
|
||||
value: 17,
|
||||
},
|
||||
{
|
||||
label: '18:00',
|
||||
value: 18,
|
||||
},
|
||||
{
|
||||
label: '19:00',
|
||||
value: 19,
|
||||
},
|
||||
{
|
||||
label: '20:00',
|
||||
value: 20,
|
||||
},
|
||||
{
|
||||
label: '21:00',
|
||||
value: 21,
|
||||
},
|
||||
{
|
||||
label: '22:00',
|
||||
value: 22,
|
||||
},
|
||||
{
|
||||
label: '23:00',
|
||||
value: 23,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
|
@@ -6,28 +6,14 @@ export default defineTrigger({
|
||||
key: 'receiveSms',
|
||||
pollInterval: 15,
|
||||
description: 'Will be triggered when a new SMS is received.',
|
||||
substeps: [
|
||||
arguments: [
|
||||
{
|
||||
key: 'chooseConnection',
|
||||
name: 'Choose connection',
|
||||
},
|
||||
{
|
||||
key: 'chooseTrigger',
|
||||
name: 'Set up a trigger',
|
||||
arguments: [
|
||||
{
|
||||
label: 'To Number',
|
||||
key: 'toNumber',
|
||||
type: 'string',
|
||||
required: true,
|
||||
description:
|
||||
'The number to receive the SMS on. It should be a Twilio number.',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
label: 'To Number',
|
||||
key: 'toNumber',
|
||||
type: 'string',
|
||||
required: true,
|
||||
description:
|
||||
'The number to receive the SMS on. It should be a Twilio number.',
|
||||
},
|
||||
],
|
||||
|
||||
|
@@ -6,16 +6,6 @@ export default defineTrigger({
|
||||
key: 'myTweets',
|
||||
pollInterval: 15,
|
||||
description: 'Will be triggered when you tweet something new.',
|
||||
substeps: [
|
||||
{
|
||||
key: 'chooseConnection',
|
||||
name: 'Choose connection',
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
},
|
||||
],
|
||||
|
||||
async run($) {
|
||||
await getUserTweets($, { currentUser: true });
|
||||
|
@@ -6,16 +6,6 @@ export default defineTrigger({
|
||||
key: 'myFollowers',
|
||||
pollInterval: 15,
|
||||
description: 'Will be triggered when you have a new follower.',
|
||||
substeps: [
|
||||
{
|
||||
key: 'chooseConnection',
|
||||
name: 'Choose connection',
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
},
|
||||
],
|
||||
|
||||
async run($) {
|
||||
await myFollowers($);
|
||||
|
@@ -7,26 +7,12 @@ export default defineTrigger({
|
||||
pollInterval: 15,
|
||||
description:
|
||||
'Will be triggered when any user tweet something containing a specific keyword, phrase, username or hashtag.',
|
||||
substeps: [
|
||||
arguments: [
|
||||
{
|
||||
key: 'chooseConnection',
|
||||
name: 'Choose connection',
|
||||
},
|
||||
{
|
||||
key: 'chooseTrigger',
|
||||
name: 'Set up a trigger',
|
||||
arguments: [
|
||||
{
|
||||
label: 'Search Term',
|
||||
key: 'searchTerm',
|
||||
type: 'string' as const,
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
label: 'Search Term',
|
||||
key: 'searchTerm',
|
||||
type: 'string' as const,
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
|
||||
|
@@ -6,26 +6,12 @@ export default defineTrigger({
|
||||
key: 'userTweets',
|
||||
pollInterval: 15,
|
||||
description: 'Will be triggered when a specific user tweet something new.',
|
||||
substeps: [
|
||||
arguments: [
|
||||
{
|
||||
key: 'chooseConnection',
|
||||
name: 'Choose connection',
|
||||
},
|
||||
{
|
||||
key: 'chooseTrigger',
|
||||
name: 'Set up a trigger',
|
||||
arguments: [
|
||||
{
|
||||
label: 'Username',
|
||||
key: 'username',
|
||||
type: 'string' as const,
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
label: 'Username',
|
||||
key: 'username',
|
||||
type: 'string' as const,
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
|
||||
|
@@ -1,5 +1,7 @@
|
||||
import { ITrigger } from '@automatisch/types';
|
||||
import { IRawTrigger } from '@automatisch/types';
|
||||
|
||||
export default function defineTrigger(triggerDefinition: ITrigger): ITrigger {
|
||||
export default function defineTrigger(
|
||||
triggerDefinition: IRawTrigger
|
||||
): IRawTrigger {
|
||||
return triggerDefinition;
|
||||
}
|
||||
|
@@ -1,4 +1,5 @@
|
||||
import { IApp } from '@automatisch/types';
|
||||
import { IApp, IRawTrigger, ITrigger } from '@automatisch/types';
|
||||
import { omit, cloneDeep } from 'lodash';
|
||||
|
||||
async function getDefaultExport(path: string) {
|
||||
return (await import(path)).default;
|
||||
@@ -8,8 +9,40 @@ function stripFunctions<C>(data: C): C {
|
||||
return JSON.parse(JSON.stringify(data));
|
||||
}
|
||||
|
||||
const chooseConnectionStep = {
|
||||
key: 'chooseConnection',
|
||||
name: 'Choose connection',
|
||||
};
|
||||
|
||||
const testStep = {
|
||||
key: 'testStep',
|
||||
name: 'Test trigger',
|
||||
};
|
||||
|
||||
const getApp = async (appKey: string, stripFuncs = true) => {
|
||||
const appData: IApp = await getDefaultExport(`../apps/${appKey}`);
|
||||
const appData: IApp = cloneDeep(await getDefaultExport(`../apps/${appKey}`));
|
||||
|
||||
appData.triggers = appData?.triggers?.map((trigger: IRawTrigger) => {
|
||||
const computedTrigger: ITrigger = omit(trigger, ['arguments']);
|
||||
|
||||
computedTrigger.substeps = [];
|
||||
|
||||
if (appData.supportsConnections) {
|
||||
computedTrigger.substeps.push(chooseConnectionStep);
|
||||
}
|
||||
|
||||
if (trigger.arguments) {
|
||||
computedTrigger.substeps.push({
|
||||
key: 'chooseTrigger',
|
||||
name: 'Set up a trigger',
|
||||
arguments: trigger.arguments,
|
||||
});
|
||||
}
|
||||
|
||||
computedTrigger.substeps.push(testStep);
|
||||
|
||||
return computedTrigger;
|
||||
});
|
||||
|
||||
if (stripFuncs) {
|
||||
return stripFunctions(appData);
|
||||
|
11
packages/types/index.d.ts
vendored
11
packages/types/index.d.ts
vendored
@@ -205,17 +205,24 @@ export interface ITriggerItem {
|
||||
};
|
||||
}
|
||||
|
||||
export interface ITrigger {
|
||||
export interface IBaseTrigger {
|
||||
name: string;
|
||||
key: string;
|
||||
pollInterval?: number;
|
||||
description: string;
|
||||
substeps: ISubstep[];
|
||||
getInterval?(parameters: IStep['parameters']): string;
|
||||
run($: IGlobalVariable): Promise<void>;
|
||||
sort?(item: ITriggerItem, nextItem: ITriggerItem): number;
|
||||
}
|
||||
|
||||
export interface IRawTrigger extends IBaseTrigger {
|
||||
arguments?: IField[];
|
||||
}
|
||||
|
||||
export interface ITrigger extends IBaseTrigger {
|
||||
substeps?: ISubstep[];
|
||||
}
|
||||
|
||||
export interface IActionOutput {
|
||||
data: IActionItem;
|
||||
error?: IJSONObject;
|
||||
|
Reference in New Issue
Block a user