Logic function refactorization (#17861)

As title
This commit is contained in:
martmull
2026-02-12 11:40:49 +01:00
committed by GitHub
parent b456f79167
commit a4ed043d43
122 changed files with 1441 additions and 1897 deletions
@@ -14,18 +14,19 @@ import { FeatureFlagGuard } from 'src/engine/guards/feature-flag.guard';
import { NoPermissionGuard } from 'src/engine/guards/no-permission.guard';
import { SettingsPermissionGuard } from 'src/engine/guards/settings-permission.guard';
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
import { CreateDefaultLogicFunctionInput } from 'src/engine/metadata-modules/logic-function/dtos/create-default-logic-function.input';
import { ExecuteOneLogicFunctionInput } from 'src/engine/metadata-modules/logic-function/dtos/execute-logic-function.input';
import { LogicFunctionExecutionResultDTO } from 'src/engine/metadata-modules/logic-function/dtos/logic-function-execution-result.dto';
import { LogicFunctionIdInput } from 'src/engine/metadata-modules/logic-function/dtos/logic-function-id.input';
import { LogicFunctionLogsDTO } from 'src/engine/metadata-modules/logic-function/dtos/logic-function-logs.dto';
import { LogicFunctionLogsInput } from 'src/engine/metadata-modules/logic-function/dtos/logic-function-logs.input';
import { LogicFunctionDTO } from 'src/engine/metadata-modules/logic-function/dtos/logic-function.dto';
import { UpdateLogicFunctionSourceInput } from 'src/engine/metadata-modules/logic-function/dtos/update-logic-function-source.input';
import { LogicFunctionService } from 'src/engine/metadata-modules/logic-function/services/logic-function.service';
import { LogicFunctionFromSourceService } from 'src/engine/metadata-modules/logic-function/services/logic-function-from-source.service';
import { logicFunctionGraphQLApiExceptionHandler } from 'src/engine/metadata-modules/logic-function/utils/logic-function-graphql-api-exception-handler.utils';
import { SubscriptionChannel } from 'src/engine/subscriptions/enums/subscription-channel.enum';
import { SubscriptionService } from 'src/engine/subscriptions/subscription.service';
import { CreateLogicFunctionFromSourceInput } from 'src/engine/metadata-modules/logic-function/dtos/create-logic-function-from-source.input';
import { UpdateLogicFunctionFromSourceInput } from 'src/engine/metadata-modules/logic-function/dtos/update-logic-function-from-source.input';
import { LogicFunctionMetadataService } from 'src/engine/metadata-modules/logic-function/services/logic-function-metadata.service';
@UseGuards(WorkspaceAuthGuard, FeatureFlagGuard, NoPermissionGuard)
@MetadataResolver()
@@ -33,7 +34,8 @@ import { SubscriptionService } from 'src/engine/subscriptions/subscription.servi
@UseFilters(PreventNestToAutoLogGraphqlErrorsFilter)
export class LogicFunctionResolver {
constructor(
private readonly logicFunctionService: LogicFunctionService,
private readonly logicFunctionFromSourceService: LogicFunctionFromSourceService,
private readonly logicFunctionMetadataService: LogicFunctionMetadataService,
private readonly subscriptionService: SubscriptionService,
) {}
@@ -43,7 +45,10 @@ export class LogicFunctionResolver {
@AuthWorkspace() { id: workspaceId }: WorkspaceEntity,
): Promise<LogicFunctionDTO> {
try {
return await this.logicFunctionService.findOne({ id, workspaceId });
return await this.logicFunctionMetadataService.findOne({
id,
workspaceId,
});
} catch (error) {
return logicFunctionGraphQLApiExceptionHandler(error);
}
@@ -54,7 +59,9 @@ export class LogicFunctionResolver {
@AuthWorkspace() { id: workspaceId }: WorkspaceEntity,
): Promise<LogicFunctionDTO[]> {
try {
return await this.logicFunctionService.findMany({ workspaceId });
return await this.logicFunctionMetadataService.findMany({
workspaceId,
});
} catch (error) {
return logicFunctionGraphQLApiExceptionHandler(error);
}
@@ -67,8 +74,8 @@ export class LogicFunctionResolver {
@AuthWorkspace() { id: workspaceId }: WorkspaceEntity,
) {
try {
return await this.logicFunctionService.getAvailablePackages({
id,
return await this.logicFunctionMetadataService.getAvailablePackages({
logicFunctionId: id,
workspaceId,
});
} catch (error) {
@@ -83,7 +90,10 @@ export class LogicFunctionResolver {
@AuthWorkspace() { id: workspaceId }: WorkspaceEntity,
): Promise<LogicFunctionDTO> {
try {
return await this.logicFunctionService.deleteOne({ id, workspaceId });
return await this.logicFunctionFromSourceService.deleteOne({
id,
workspaceId,
});
} catch (error) {
return logicFunctionGraphQLApiExceptionHandler(error);
}
@@ -91,12 +101,12 @@ export class LogicFunctionResolver {
@Mutation(() => LogicFunctionDTO)
@UseGuards(SettingsPermissionGuard(PermissionFlagType.WORKFLOWS))
async createDefaultLogicFunction(
@Args('input') input: CreateDefaultLogicFunctionInput,
async createOneLogicFunction(
@Args('input') input: CreateLogicFunctionFromSourceInput,
@AuthWorkspace() { id: workspaceId }: WorkspaceEntity,
): Promise<LogicFunctionDTO> {
try {
return await this.logicFunctionService.createDefault({
return await this.logicFunctionFromSourceService.createOne({
input,
workspaceId,
});
@@ -108,14 +118,13 @@ export class LogicFunctionResolver {
@Mutation(() => LogicFunctionExecutionResultDTO)
@UseGuards(SettingsPermissionGuard(PermissionFlagType.WORKFLOWS))
async executeOneLogicFunction(
@Args('input') { id, payload, forceRebuild }: ExecuteOneLogicFunctionInput,
@Args('input') { id, payload }: ExecuteOneLogicFunctionInput,
@AuthWorkspace() { id: workspaceId }: WorkspaceEntity,
): Promise<LogicFunctionExecutionResultDTO> {
try {
return await this.logicFunctionService.executeOne({
return await this.logicFunctionFromSourceService.executeOne({
id,
payload,
forceRebuild,
workspaceId,
});
} catch (error) {
@@ -123,14 +132,14 @@ export class LogicFunctionResolver {
}
}
@Query(() => graphqlTypeJson, { nullable: true })
@Query(() => String, { nullable: true })
@UseGuards(SettingsPermissionGuard(PermissionFlagType.WORKFLOWS))
async getLogicFunctionSourceCode(
@Args('input') { id }: LogicFunctionIdInput,
@AuthWorkspace() { id: workspaceId }: WorkspaceEntity,
) {
try {
return await this.logicFunctionService.getSourceCode({
return await this.logicFunctionFromSourceService.getSourceCode({
id,
workspaceId,
});
@@ -141,14 +150,14 @@ export class LogicFunctionResolver {
@Mutation(() => Boolean)
@UseGuards(SettingsPermissionGuard(PermissionFlagType.WORKFLOWS))
async updateLogicFunctionSource(
@Args('input') { id, code }: UpdateLogicFunctionSourceInput,
async updateOneLogicFunction(
@Args('input') { id, update }: UpdateLogicFunctionFromSourceInput,
@AuthWorkspace() { id: workspaceId }: WorkspaceEntity,
): Promise<boolean> {
try {
await this.logicFunctionService.updateLogicFunctionSource({
await this.logicFunctionFromSourceService.updateOne({
id,
code,
update,
workspaceId,
});