Files
twenty/packages/twenty-server/src/engine/metadata-modules/logic-function/logic-function.exception.ts
T
Charles Bochet 6eebf6f23a Remove versions from logicFunction (#17540)
## Summary

- Remove `latestVersion` and `publishedVersions` columns from
`LogicFunction` entity
- Remove version parameter from logic function execution, build, and
source code retrieval
- Update all related services, DTOs, utilities, and tests
- Add database migration to drop the version columns
2026-01-30 14:30:49 +01:00

59 lines
2.4 KiB
TypeScript

import { type MessageDescriptor } from '@lingui/core';
import { msg } from '@lingui/core/macro';
import { assertUnreachable } from 'twenty-shared/utils';
import { CustomException } from 'src/utils/custom-exception';
export enum LogicFunctionExceptionCode {
LOGIC_FUNCTION_NOT_FOUND = 'LOGIC_FUNCTION_NOT_FOUND',
LOGIC_FUNCTION_ALREADY_EXIST = 'LOGIC_FUNCTION_ALREADY_EXIST',
LOGIC_FUNCTION_NOT_READY = 'LOGIC_FUNCTION_NOT_READY',
LOGIC_FUNCTION_BUILDING = 'LOGIC_FUNCTION_BUILDING',
LOGIC_FUNCTION_CODE_UNCHANGED = 'LOGIC_FUNCTION_CODE_UNCHANGED',
LOGIC_FUNCTION_EXECUTION_LIMIT_REACHED = 'LOGIC_FUNCTION_EXECUTION_LIMIT_REACHED',
LOGIC_FUNCTION_CREATE_FAILED = 'LOGIC_FUNCTION_CREATE_FAILED',
LOGIC_FUNCTION_EXECUTION_TIMEOUT = 'LOGIC_FUNCTION_EXECUTION_TIMEOUT',
LOGIC_FUNCTION_DISABLED = 'LOGIC_FUNCTION_DISABLED',
}
const getLogicFunctionExceptionUserFriendlyMessage = (
code: LogicFunctionExceptionCode,
) => {
switch (code) {
case LogicFunctionExceptionCode.LOGIC_FUNCTION_NOT_FOUND:
return msg`Function not found.`;
case LogicFunctionExceptionCode.LOGIC_FUNCTION_ALREADY_EXIST:
return msg`A function with this name already exists.`;
case LogicFunctionExceptionCode.LOGIC_FUNCTION_NOT_READY:
return msg`Function is not ready.`;
case LogicFunctionExceptionCode.LOGIC_FUNCTION_BUILDING:
return msg`Function is currently building.`;
case LogicFunctionExceptionCode.LOGIC_FUNCTION_CODE_UNCHANGED:
return msg`Function code is unchanged.`;
case LogicFunctionExceptionCode.LOGIC_FUNCTION_EXECUTION_LIMIT_REACHED:
return msg`Function execution limit reached.`;
case LogicFunctionExceptionCode.LOGIC_FUNCTION_CREATE_FAILED:
return msg`Failed to create function.`;
case LogicFunctionExceptionCode.LOGIC_FUNCTION_EXECUTION_TIMEOUT:
return msg`Function execution timed out.`;
case LogicFunctionExceptionCode.LOGIC_FUNCTION_DISABLED:
return msg`Logic function execution is disabled.`;
default:
assertUnreachable(code);
}
};
export class LogicFunctionException extends CustomException<LogicFunctionExceptionCode> {
constructor(
message: string,
code: LogicFunctionExceptionCode,
{ userFriendlyMessage }: { userFriendlyMessage?: MessageDescriptor } = {},
) {
super(message, code, {
userFriendlyMessage:
userFriendlyMessage ??
getLogicFunctionExceptionUserFriendlyMessage(code),
});
}
}