Fix sort bug issue (#14607)

Enum should not receive any special treatment when building order by
This commit is contained in:
Charles Bochet
2025-09-18 20:23:19 +02:00
committed by GitHub
parent 4d994fc566
commit c7005db860
@@ -3,7 +3,6 @@ import { Injectable, Logger } from '@nestjs/common';
import {
GraphQLInputFieldConfigMap,
GraphQLInputObjectType,
isEnumType,
isInputObjectType,
} from 'graphql';
import { isDefined } from 'twenty-shared/utils';
@@ -17,12 +16,10 @@ import {
import { GqlTypesStorage } from 'src/engine/api/graphql/workspace-schema-builder/storages/gql-types.storage';
import { computeFieldInputTypeOptions } from 'src/engine/api/graphql/workspace-schema-builder/utils/compute-field-input-type-options.util';
import { computeCompositeFieldInputTypeKey } from 'src/engine/api/graphql/workspace-schema-builder/utils/compute-stored-gql-type-key-utils/compute-composite-field-input-type-key.util';
import { computeEnumFieldGqlTypeKey } from 'src/engine/api/graphql/workspace-schema-builder/utils/compute-stored-gql-type-key-utils/compute-enum-field-gql-type-key.util';
import { computeObjectMetadataInputTypeKey } from 'src/engine/api/graphql/workspace-schema-builder/utils/compute-stored-gql-type-key-utils/compute-object-metadata-input-type.util';
import { isFieldMetadataRelationOrMorphRelation } from 'src/engine/api/graphql/workspace-schema-builder/utils/is-field-metadata-relation-or-morph-relation.utils';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util';
import { isEnumFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-enum-field-metadata-type.util';
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
import { pascalCase } from 'src/utils/pascal-case';
@@ -75,12 +72,6 @@ export class ObjectMetadataOrderByGqlInputTypeGenerator {
typeOptions,
},
);
} else if (isEnumFieldMetadataType(fieldMetadata.type)) {
generatedFields = this.generateEnumFieldOrderByInputType(
objectMetadata,
fieldMetadata,
typeOptions,
);
} else if (isCompositeFieldMetadataType(fieldMetadata.type)) {
generatedFields = this.generateCompositeFieldOrderByInputType(
fieldMetadata,
@@ -153,34 +144,4 @@ export class ObjectMetadataOrderByGqlInputTypeGenerator {
},
};
}
private generateEnumFieldOrderByInputType(
objectMetadata: ObjectMetadataEntity,
fieldMetadata: FieldMetadataEntity,
typeOptions: TypeOptions,
) {
const key = computeEnumFieldGqlTypeKey(
objectMetadata.nameSingular,
fieldMetadata.name,
);
const enumType = this.gqlTypesStorage.getGqlTypeByKey(key);
if (!isDefined(enumType) || !isEnumType(enumType)) {
const message = `Could not find a GraphQL input type for ${fieldMetadata.type} field metadata`;
this.logger.error(message, {
fieldMetadata,
typeOptions,
});
throw new Error(message);
}
return {
[fieldMetadata.name]: {
type: enumType,
description: fieldMetadata.description,
},
};
}
}