From 418388453757bc0912acfeec0498fe7c71eccdc5 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Sun, 18 Sep 2022 14:35:42 +0200 Subject: [PATCH 1/2] feat: show active flows first --- packages/backend/src/graphql/queries/get-flows.ts | 1 + 1 file changed, 1 insertion(+) 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); From 58565fddae1e2b31780033fbc411832cb8f2b64d Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Sun, 18 Sep 2022 14:58:22 +0200 Subject: [PATCH 2/2] fix: provide step.parameters to Scheduler triggers --- packages/backend/src/apps/scheduler/index.ts | 13 +++++-------- packages/backend/src/apps/scheduler/triggers.ts | 4 ++-- .../src/apps/scheduler/triggers/every-day.ts | 4 ++-- .../src/apps/scheduler/triggers/every-hour.ts | 4 ++-- .../src/apps/scheduler/triggers/every-month.ts | 4 ++-- .../src/apps/scheduler/triggers/every-week.ts | 4 ++-- 6 files changed, 15 insertions(+), 18 deletions(-) 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; }