feat: increase consumed task count upon tasks

This commit is contained in:
Ali BARIN
2023-03-07 21:26:12 +00:00
parent 7676bc5836
commit 472ffd5b5c
4 changed files with 30 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

@@ -31,6 +31,10 @@ class UsageData extends Base {
},
},
});
async increaseConsumedTaskCountByOne() {
return await this.$query().patch({ consumedTaskCount: this.consumedTaskCount + 1 });
}
}
export default UsageData;