twenty / packages /twenty-server /src /engine /metadata-modules /logic-function /utils /from-create-logic-function-from-source-input-to-universal-flat-logic-function-to-create.util.ts
Jules
Initial clean CRM deployment with prebuilt assets
d9494a5
Raw
History Blame Contribute Delete
2.71 kB
import { trimAndRemoveDuplicatedWhitespacesFromObjectStringProperties } from 'twenty-shared/utils';
import { v4 } from 'uuid';
import {
LogicFunctionExecutionMode,
LogicFunctionRuntime,
} from 'src/engine/metadata-modules/logic-function/logic-function.entity';
import { type CreateLogicFunctionFromSourceInput } from 'src/engine/metadata-modules/logic-function/dtos/create-logic-function-from-source.input';
import { type UniversalFlatLogicFunction } from 'src/engine/workspace-manager/workspace-migration/universal-flat-entity/types/universal-flat-logic-function.type';
export const fromCreateLogicFunctionFromSourceInputToUniversalFlatLogicFunctionToCreate =
({
createLogicFunctionFromSourceInput,
sourceHandlerPath,
builtHandlerPath,
handlerName,
checksum,
isBuildUpToDate,
applicationUniversalIdentifier,
}: {
createLogicFunctionFromSourceInput: CreateLogicFunctionFromSourceInput;
sourceHandlerPath: string;
builtHandlerPath: string;
handlerName: string;
checksum: string | null;
isBuildUpToDate: boolean;
applicationUniversalIdentifier: string;
}): UniversalFlatLogicFunction & { id: string } => {
const now = new Date().toISOString();
const { name, description } =
trimAndRemoveDuplicatedWhitespacesFromObjectStringProperties(
createLogicFunctionFromSourceInput,
['name', 'description'],
);
const id = createLogicFunctionFromSourceInput.id ?? v4();
return {
id,
universalIdentifier:
createLogicFunctionFromSourceInput.universalIdentifier ?? v4(),
name,
description: description ?? null,
runtime: LogicFunctionRuntime.NODE22,
timeoutSeconds: createLogicFunctionFromSourceInput.timeoutSeconds ?? 300,
checksum,
isBuildUpToDate,
executionMode: LogicFunctionExecutionMode.LIVE,
handlerName,
sourceHandlerPath,
builtHandlerPath,
cronTriggerSettings:
createLogicFunctionFromSourceInput.cronTriggerSettings ?? null,
databaseEventTriggerSettings:
createLogicFunctionFromSourceInput.databaseEventTriggerSettings ?? null,
httpRouteTriggerSettings:
createLogicFunctionFromSourceInput.httpRouteTriggerSettings ?? null,
serverRouteTriggerSettings:
createLogicFunctionFromSourceInput.serverRouteTriggerSettings ?? null,
toolTriggerSettings:
createLogicFunctionFromSourceInput.toolTriggerSettings ?? null,
workflowActionTriggerSettings:
createLogicFunctionFromSourceInput.workflowActionTriggerSettings ??
null,
createdAt: now,
updatedAt: now,
deletedAt: null,
applicationUniversalIdentifier,
};
};