[Apps SDK] Add error message if relationType is missing (#19006)
Before <img width="2138" height="1434" alt="image" src="https://github.com/user-attachments/assets/23aa04ae-9994-4ff9-bac8-9f245e6ca05f" /> After <img width="1029" height="610" alt="image" src="https://github.com/user-attachments/assets/7af48bc0-678d-4451-8cfb-a5e4028f2c2d" />
This commit is contained in:
+4
@@ -34,6 +34,10 @@ export const validateJunctionTargetSettings = ({
|
||||
}: ValidateJunctionTargetSettingsArgs): FlatFieldMetadataValidationError[] => {
|
||||
const { universalSettings } = universalFlatFieldMetadata;
|
||||
|
||||
if (!isDefined(universalSettings)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const junctionTargetFieldUniversalIdentifier =
|
||||
universalSettings.junctionTargetFieldUniversalIdentifier;
|
||||
|
||||
|
||||
+9
-4
@@ -1,4 +1,3 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { RelationType } from 'twenty-shared/types';
|
||||
import { assertUnreachable, isDefined } from 'twenty-shared/utils';
|
||||
|
||||
@@ -25,6 +24,15 @@ export const validateMorphOrRelationFlatFieldJoinColumName = ({
|
||||
}): FlatFieldMetadataValidationError[] => {
|
||||
const errors: FlatFieldMetadataValidationError[] = [];
|
||||
|
||||
if (!isDefined(universalFlatFieldMetadata.universalSettings?.relationType)) {
|
||||
errors.push({
|
||||
code: FieldMetadataExceptionCode.INVALID_FIELD_INPUT,
|
||||
message: `Relation field "${universalFlatFieldMetadata.name}" is missing relationType in universalSettings. Expected MANY_TO_ONE or ONE_TO_MANY.`,
|
||||
});
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
switch (universalFlatFieldMetadata.universalSettings.relationType) {
|
||||
case RelationType.MANY_TO_ONE: {
|
||||
if (
|
||||
@@ -34,7 +42,6 @@ export const validateMorphOrRelationFlatFieldJoinColumName = ({
|
||||
code: FieldMetadataExceptionCode.INVALID_FIELD_INPUT,
|
||||
message:
|
||||
'Many to one field metadata should carry the join column name in its settings',
|
||||
userFriendlyMessage: msg`A many to one relation field should always declare a join column`,
|
||||
});
|
||||
|
||||
return errors;
|
||||
@@ -50,7 +57,6 @@ export const validateMorphOrRelationFlatFieldJoinColumName = ({
|
||||
errors.push({
|
||||
code: FieldMetadataExceptionCode.INVALID_FIELD_INPUT,
|
||||
message: 'Could not find relation field parent flat object',
|
||||
userFriendlyMessage: msg`Could not find relation field parent flat object`,
|
||||
});
|
||||
|
||||
return errors;
|
||||
@@ -74,7 +80,6 @@ export const validateMorphOrRelationFlatFieldJoinColumName = ({
|
||||
code: FieldMetadataExceptionCode.INVALID_FIELD_INPUT,
|
||||
message:
|
||||
'One to many field metadata should not carry the join column name in its settings',
|
||||
userFriendlyMessage: msg`A one to many relation field should never declare a join column`,
|
||||
});
|
||||
}
|
||||
break;
|
||||
|
||||
+4
@@ -14,6 +14,10 @@ export const validateMorphOrRelationFlatFieldOnDelete = ({
|
||||
}): FlatFieldMetadataValidationError[] => {
|
||||
const errors: FlatFieldMetadataValidationError[] = [];
|
||||
|
||||
if (!isDefined(universalFlatFieldMetadata.universalSettings?.relationType)) {
|
||||
return errors;
|
||||
}
|
||||
|
||||
if (
|
||||
isDefined(universalFlatFieldMetadata.universalSettings.onDelete) &&
|
||||
universalFlatFieldMetadata.universalSettings.relationType !==
|
||||
|
||||
Reference in New Issue
Block a user