Spaces:
Build error
Build error
File size: 2,897 Bytes
d9494a5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | 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 ChartDataExceptionCode {
WIDGET_NOT_FOUND = 'WIDGET_NOT_FOUND',
INVALID_WIDGET_CONFIGURATION = 'INVALID_WIDGET_CONFIGURATION',
OBJECT_METADATA_NOT_FOUND = 'OBJECT_METADATA_NOT_FOUND',
FIELD_METADATA_NOT_FOUND = 'FIELD_METADATA_NOT_FOUND',
QUERY_EXECUTION_FAILED = 'QUERY_EXECUTION_FAILED',
TRANSFORMATION_FAILED = 'TRANSFORMATION_FAILED',
PERMISSION_DENIED = 'PERMISSION_DENIED',
}
const getChartDataExceptionUserFriendlyMessage = (
code: ChartDataExceptionCode,
): MessageDescriptor => {
switch (code) {
case ChartDataExceptionCode.WIDGET_NOT_FOUND:
return msg`Widget not found.`;
case ChartDataExceptionCode.INVALID_WIDGET_CONFIGURATION:
return msg`Invalid widget configuration.`;
case ChartDataExceptionCode.OBJECT_METADATA_NOT_FOUND:
return msg`Object metadata not found.`;
case ChartDataExceptionCode.FIELD_METADATA_NOT_FOUND:
return msg`Field metadata not found.`;
case ChartDataExceptionCode.QUERY_EXECUTION_FAILED:
return msg`Query execution failed.`;
case ChartDataExceptionCode.TRANSFORMATION_FAILED:
return msg`Transformation failed.`;
case ChartDataExceptionCode.PERMISSION_DENIED:
return msg`You do not have permission to view this data.`;
default:
assertUnreachable(code);
}
};
export class ChartDataException extends CustomException<ChartDataExceptionCode> {
constructor(
message: string,
code: ChartDataExceptionCode,
{ userFriendlyMessage }: { userFriendlyMessage?: MessageDescriptor } = {},
) {
super(message, code, {
userFriendlyMessage:
userFriendlyMessage ?? getChartDataExceptionUserFriendlyMessage(code),
});
}
}
export const generateChartDataExceptionMessage = (
code: ChartDataExceptionCode,
context?: string,
): string => {
const messages: Record<ChartDataExceptionCode, string> = {
[ChartDataExceptionCode.WIDGET_NOT_FOUND]: `Widget not found${context ? `: ${context}` : ''}`,
[ChartDataExceptionCode.INVALID_WIDGET_CONFIGURATION]: `Invalid widget configuration${context ? `: ${context}` : ''}`,
[ChartDataExceptionCode.OBJECT_METADATA_NOT_FOUND]: `Object metadata not found${context ? `: ${context}` : ''}`,
[ChartDataExceptionCode.FIELD_METADATA_NOT_FOUND]: `Field metadata not found${context ? `: ${context}` : ''}`,
[ChartDataExceptionCode.QUERY_EXECUTION_FAILED]: `Query execution failed${context ? `: ${context}` : ''}`,
[ChartDataExceptionCode.TRANSFORMATION_FAILED]: `Transformation failed${context ? `: ${context}` : ''}`,
[ChartDataExceptionCode.PERMISSION_DENIED]: `Permission denied${context ? `: ${context}` : ''}`,
};
return messages[code];
};
|