diff --git a/packages/backend/src/apps/scheduler/index.ts b/packages/backend/src/apps/scheduler/index.ts index 43dc06a6..b7ee1a76 100644 --- a/packages/backend/src/apps/scheduler/index.ts +++ b/packages/backend/src/apps/scheduler/index.ts @@ -1,18 +1,15 @@ import Triggers from './triggers'; import { IService, - IApp, - IJSONObject, + IConnection, + IFlow, + IStep, } from '@automatisch/types'; export default class Scheduler implements IService { triggers: Triggers; - constructor( - appData: IApp, - connectionData: IJSONObject, - parameters: IJSONObject - ) { - this.triggers = new Triggers(connectionData, parameters); + constructor(connection: IConnection, flow: IFlow, step: IStep) { + this.triggers = new Triggers(step.parameters); } } diff --git a/packages/backend/src/apps/scheduler/triggers.ts b/packages/backend/src/apps/scheduler/triggers.ts index 1073efb3..ef959681 100644 --- a/packages/backend/src/apps/scheduler/triggers.ts +++ b/packages/backend/src/apps/scheduler/triggers.ts @@ -1,4 +1,4 @@ -import { IJSONObject } from '@automatisch/types'; +import { IStep } from '@automatisch/types'; import EveryHour from './triggers/every-hour'; import EveryDay from './triggers/every-day'; import EveryWeek from './triggers/every-week'; @@ -10,7 +10,7 @@ export default class Triggers { everyWeek: EveryWeek; everyMonth: EveryMonth; - constructor(connectionData: IJSONObject, parameters: IJSONObject) { + constructor(parameters: IStep["parameters"]) { this.everyHour = new EveryHour(parameters); this.everyDay = new EveryDay(parameters); this.everyWeek = new EveryWeek(parameters); diff --git a/packages/backend/src/apps/scheduler/triggers/every-day.ts b/packages/backend/src/apps/scheduler/triggers/every-day.ts index 7b8b3490..dceb2d7e 100644 --- a/packages/backend/src/apps/scheduler/triggers/every-day.ts +++ b/packages/backend/src/apps/scheduler/triggers/every-day.ts @@ -1,12 +1,12 @@ import { DateTime } from 'luxon'; -import type { IJSONObject, IJSONValue, ITrigger } from '@automatisch/types'; +import type { IStep, IJSONValue, ITrigger } from '@automatisch/types'; import { cronTimes, getNextCronDateTime, getDateTimeObjectRepresentation } from '../utils'; export default class EveryDay implements ITrigger { triggersOnWeekend?: boolean; hour?: number; - constructor(parameters: IJSONObject) { + constructor(parameters: IStep["parameters"]) { if (parameters.triggersOnWeekend) { this.triggersOnWeekend = parameters.triggersOnWeekend as boolean; } diff --git a/packages/backend/src/apps/scheduler/triggers/every-hour.ts b/packages/backend/src/apps/scheduler/triggers/every-hour.ts index caa111e9..f76c9cf6 100644 --- a/packages/backend/src/apps/scheduler/triggers/every-hour.ts +++ b/packages/backend/src/apps/scheduler/triggers/every-hour.ts @@ -1,11 +1,11 @@ import { DateTime } from 'luxon'; -import type { IJSONObject, IJSONValue, ITrigger } from '@automatisch/types'; +import type { IStep, IJSONValue, ITrigger } from '@automatisch/types'; import { cronTimes, getNextCronDateTime, getDateTimeObjectRepresentation } from '../utils'; export default class EveryHour implements ITrigger { triggersOnWeekend?: boolean | string; - constructor(parameters: IJSONObject) { + constructor(parameters: IStep["parameters"]) { if (parameters.triggersOnWeekend) { this.triggersOnWeekend = parameters.triggersOnWeekend as string; } diff --git a/packages/backend/src/apps/scheduler/triggers/every-month.ts b/packages/backend/src/apps/scheduler/triggers/every-month.ts index 041bf047..822e3b31 100644 --- a/packages/backend/src/apps/scheduler/triggers/every-month.ts +++ b/packages/backend/src/apps/scheduler/triggers/every-month.ts @@ -1,12 +1,12 @@ import { DateTime } from 'luxon'; -import type { IJSONObject, IJSONValue, ITrigger } from '@automatisch/types'; +import type { IStep, IJSONValue, ITrigger } from '@automatisch/types'; import { cronTimes, getNextCronDateTime, getDateTimeObjectRepresentation } from '../utils'; export default class EveryMonth implements ITrigger { day?: number; hour?: number; - constructor(parameters: IJSONObject) { + constructor(parameters: IStep["parameters"]) { if (parameters.day) { this.day = parameters.day as number; } diff --git a/packages/backend/src/apps/scheduler/triggers/every-week.ts b/packages/backend/src/apps/scheduler/triggers/every-week.ts index c92cd647..06012f7e 100644 --- a/packages/backend/src/apps/scheduler/triggers/every-week.ts +++ b/packages/backend/src/apps/scheduler/triggers/every-week.ts @@ -1,12 +1,12 @@ import { DateTime } from 'luxon'; -import type { IJSONObject, IJSONValue, ITrigger } from '@automatisch/types'; +import type { IStep, IJSONValue, ITrigger } from '@automatisch/types'; import { cronTimes, getNextCronDateTime, getDateTimeObjectRepresentation } from '../utils'; export default class EveryWeek implements ITrigger { weekday?: number; hour?: number; - constructor(parameters: IJSONObject) { + constructor(parameters: IStep["parameters"]) { if (parameters.weekday) { this.weekday = parameters.weekday as number; } diff --git a/packages/backend/src/graphql/queries/get-flows.ts b/packages/backend/src/graphql/queries/get-flows.ts index 4f89364e..5fd0a591 100644 --- a/packages/backend/src/graphql/queries/get-flows.ts +++ b/packages/backend/src/graphql/queries/get-flows.ts @@ -34,6 +34,7 @@ const getFlows = async (_parent: unknown, params: Params, context: Context) => { } }) .groupBy('flows.id') + .orderBy('active', 'desc') .orderBy('updated_at', 'desc'); return paginate(flowsQuery, params.limit, params.offset);