import { ITriggerFunctions } from 'n8n-core'; import { INodeType, INodeTypeDescription, ITriggerResponse, IDataObject, } from 'n8n-workflow'; import { CronJob } from 'cron'; import * as moment from 'moment'; import { togglApiRequest } from './GenericFunctions'; export class TogglTrigger implements INodeType { description: INodeTypeDescription = { displayName: 'Toggl', name: 'Toggl', icon: 'file:toggl.png', group: ['trigger'], version: 1, description: 'Starts the workflow when Toggl events occure', defaults: { name: 'Toggl', color: '#00FF00', }, credentials: [ { name: 'togglApi', required: true, } ], inputs: [], outputs: ['main'], properties: [ { displayName: 'Event', name: 'event', type: 'options', options: [ { name: 'New Time Entry', value: 'newTimeEntry', } ], required: true, default: 'newTimeEntry', }, { displayName: 'Mode', name: 'mode', type: 'options', options: [ { name: 'Every Minute', value: 'everyMinute' }, { name: 'Every Hour', value: 'everyHour' }, { name: 'Every Day', value: 'everyDay' }, { name: 'Every Week', value: 'everyWeek' }, { name: 'Every Month', value: 'everyMonth' }, { name: 'Custom', value: 'custom' }, ], default: 'everyDay', description: 'How often to trigger.', }, { displayName: 'Hour', name: 'hour', type: 'number', typeOptions: { minValue: 0, maxValue: 23, }, displayOptions: { hide: { mode: [ 'custom', 'everyHour', 'everyMinute' ], }, }, default: 14, description: 'The hour of the day to trigger (24h format).', }, { displayName: 'Minute', name: 'minute', type: 'number', typeOptions: { minValue: 0, maxValue: 59, }, displayOptions: { hide: { mode: [ 'custom', 'everyMinute' ], }, }, default: 0, description: 'The minute of the day to trigger.', }, { displayName: 'Day of Month', name: 'dayOfMonth', type: 'number', displayOptions: { show: { mode: [ 'everyMonth', ], }, }, typeOptions: { minValue: 1, maxValue: 31, }, default: 1, description: 'The day of the month to trigger.', }, { displayName: 'Weekday', name: 'weekday', type: 'options', displayOptions: { show: { mode: [ 'everyWeek', ], }, }, options: [ { name: 'Monday', value: '1', }, { name: 'Tuesday', value: '2', }, { name: 'Wednesday', value: '3', }, { name: 'Thursday', value: '4', }, { name: 'Friday', value: '5', }, { name: 'Saturday', value: '6', }, { name: 'Sunday', value: '0', }, ], default: '1', description: 'The weekday to trigger.', }, { displayName: 'Cron Expression', name: 'cronExpression', type: 'string', displayOptions: { show: { mode: [ 'custom', ], }, }, default: '* * * * * *', description: 'Use custom cron expression. Values and ranges as follows: