Baptiste Devessier
2026-02-20 14:18:00 +01:00
committed by GitHub
parent b107020ad3
commit 00209f7e2c
136 changed files with 4875 additions and 835 deletions
@@ -0,0 +1,39 @@
import { msg, t } from '@lingui/core/macro';
import { isDefined } from 'twenty-shared/utils';
import { type ValidateFlatPageLayoutWidgetTypeSpecificitiesForUpdateArgs } from 'src/engine/metadata-modules/flat-page-layout-widget/services/flat-page-layout-widget-type-validator.service';
import { type FlatPageLayoutWidgetValidationError } from 'src/engine/metadata-modules/flat-page-layout-widget/types/flat-page-layout-widget-validation-error.type';
import { type WidgetConfigurationType } from 'src/engine/metadata-modules/page-layout-widget/enums/widget-configuration-type.type';
import { PageLayoutWidgetExceptionCode } from 'src/engine/metadata-modules/page-layout-widget/exceptions/page-layout-widget.exception';
export const validateSimpleRecordPageWidgetForUpdate =
(expectedConfigurationType: WidgetConfigurationType) =>
(
args: ValidateFlatPageLayoutWidgetTypeSpecificitiesForUpdateArgs,
): FlatPageLayoutWidgetValidationError[] => {
const { flatEntityToValidate } = args;
const { universalConfiguration, title: widgetTitle } = flatEntityToValidate;
if (!isDefined(universalConfiguration)) {
return [];
}
const errors: FlatPageLayoutWidgetValidationError[] = [];
if (
universalConfiguration.configurationType !== expectedConfigurationType
) {
const expectedString = expectedConfigurationType.toString();
const actualString =
universalConfiguration.configurationType?.toString() ?? 'undefined';
errors.push({
code: PageLayoutWidgetExceptionCode.INVALID_PAGE_LAYOUT_WIDGET_DATA,
message: t`Invalid configuration type for widget "${widgetTitle}". Expected ${expectedString}, got ${actualString}`,
userFriendlyMessage: msg`Invalid configuration type for widget`,
value: universalConfiguration.configurationType,
});
}
return errors;
};