Merge pull request #986 from automatisch/increase-consumed-task-count

feat: increase consumed task count upon tasks
This commit is contained in:
Ömer Faruk Aydın
2023-03-08 10:07:28 +01:00
committed by GitHub
4 changed files with 31 additions and 1 deletions

View File

@@ -1,9 +1,10 @@
import type { QueryContext } from 'objection';
import { IJSONObject } from '@automatisch/types';
import appConfig from '../config/app';
import Base from './base';
import Execution from './execution';
import Step from './step';
import Telemetry from '../helpers/telemetry';
import { IJSONObject } from '@automatisch/types';
class ExecutionStep extends Base {
id!: string;
@@ -14,6 +15,7 @@ class ExecutionStep extends Base {
errorDetails: IJSONObject;
status: 'success' | 'failure';
step: Step;
execution?: Execution;
static tableName = 'execution_steps';
@@ -57,6 +59,18 @@ class ExecutionStep extends Base {
async $afterInsert(queryContext: QueryContext) {
await super.$afterInsert(queryContext);
Telemetry.executionStepCreated(this);
if (appConfig.isCloud) {
const execution = await this.$relatedQuery('execution');
if (!execution.testRun && !this.isFailed) {
const flow = await execution.$relatedQuery('flow');
const user = await flow.$relatedQuery('user');
const usageData = await user.$relatedQuery('usageData');
await usageData.increaseConsumedTaskCountByOne();
}
}
}
}

View File

@@ -10,6 +10,7 @@ class Execution extends Base {
testRun: boolean;
internalId: string;
executionSteps: ExecutionStep[];
flow?: Flow;
static tableName = 'executions';

View File

@@ -3,6 +3,7 @@ import type { ModelOptions, QueryContext } from 'objection';
import ExtendedQueryBuilder from './query-builder';
import Base from './base';
import Step from './step';
import User from './user';
import Execution from './execution';
import Telemetry from '../helpers/telemetry';
@@ -15,6 +16,7 @@ class Flow extends Base {
published_at: string;
remoteWebhookId: string;
executions?: Execution[];
user?: User;
static tableName = 'flows';
@@ -51,6 +53,14 @@ class Flow extends Base {
to: 'executions.flow_id',
},
},
user: {
relation: Base.HasOneRelation,
modelClass: User,
join: {
from: 'flows.user_id',
to: 'users.id',
},
},
});
async lastInternalId() {

View File

@@ -1,3 +1,4 @@
import { raw } from 'objection';
import Base from './base';
import User from './user';
@@ -31,6 +32,10 @@ class UsageData extends Base {
},
},
});
async increaseConsumedTaskCountByOne() {
return await this.$query().patch({ consumedTaskCount: raw('consumed_task_count + 1') });
}
}
export default UsageData;