feat: increase consumed task count upon tasks
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -10,6 +10,7 @@ class Execution extends Base {
|
||||
testRun: boolean;
|
||||
internalId: string;
|
||||
executionSteps: ExecutionStep[];
|
||||
flow?: Flow;
|
||||
|
||||
static tableName = 'executions';
|
||||
|
||||
|
@@ -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() {
|
||||
|
@@ -31,6 +31,10 @@ class UsageData extends Base {
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
async increaseConsumedTaskCountByOne() {
|
||||
return await this.$query().patch({ consumedTaskCount: this.consumedTaskCount + 1 });
|
||||
}
|
||||
}
|
||||
|
||||
export default UsageData;
|
||||
|
Reference in New Issue
Block a user