Files
twenty/packages/twenty-server/src/engine/metadata-modules/page-layout/exceptions/page-layout.exception.ts
T
2025-12-05 13:04:06 +00:00

30 lines
897 B
TypeScript

import { assertUnreachable } from 'twenty-shared/utils';
import { CustomException } from 'src/utils/custom-exception';
export enum PageLayoutExceptionCode {
PAGE_LAYOUT_NOT_FOUND = 'PAGE_LAYOUT_NOT_FOUND',
INVALID_PAGE_LAYOUT_DATA = 'INVALID_PAGE_LAYOUT_DATA',
}
export enum PageLayoutExceptionMessageKey {
PAGE_LAYOUT_NOT_FOUND = 'PAGE_LAYOUT_NOT_FOUND',
NAME_REQUIRED = 'NAME_REQUIRED',
}
export class PageLayoutException extends CustomException<PageLayoutExceptionCode> {}
export const generatePageLayoutExceptionMessage = (
key: PageLayoutExceptionMessageKey,
value?: string,
): string => {
switch (key) {
case PageLayoutExceptionMessageKey.PAGE_LAYOUT_NOT_FOUND:
return `Page layout with ID "${value}" not found`;
case PageLayoutExceptionMessageKey.NAME_REQUIRED:
return 'Page layout name is required';
default:
assertUnreachable(key);
}
};