[groupBy] Fix order by nested date field (#16135)
Fixes https://github.com/twentyhq/core-team-issues/issues/1935
This commit is contained in:
+7
-6
@@ -30,12 +30,12 @@ export class ObjectMetadataOrderByBaseGenerator {
|
||||
public generateFields({
|
||||
fields,
|
||||
logger,
|
||||
orderByDateGranularity,
|
||||
isForGroupBy,
|
||||
context,
|
||||
}: {
|
||||
fields: FlatFieldMetadata[];
|
||||
logger: Logger;
|
||||
orderByDateGranularity?: boolean;
|
||||
isForGroupBy?: boolean;
|
||||
context?: SchemaGenerationContext;
|
||||
}): GraphQLInputFieldConfigMap {
|
||||
const allGeneratedFields: GraphQLInputFieldConfigMap = {};
|
||||
@@ -59,6 +59,7 @@ export class ObjectMetadataOrderByBaseGenerator {
|
||||
{
|
||||
fieldMetadata,
|
||||
typeOptions,
|
||||
isForGroupBy,
|
||||
context,
|
||||
},
|
||||
);
|
||||
@@ -72,7 +73,7 @@ export class ObjectMetadataOrderByBaseGenerator {
|
||||
generatedFields = this.generateAtomicFieldOrderByInputType({
|
||||
fieldMetadata,
|
||||
typeOptions,
|
||||
orderByDateGranularity,
|
||||
isForGroupBy,
|
||||
logger,
|
||||
});
|
||||
}
|
||||
@@ -117,15 +118,15 @@ export class ObjectMetadataOrderByBaseGenerator {
|
||||
fieldMetadata,
|
||||
typeOptions,
|
||||
logger,
|
||||
orderByDateGranularity,
|
||||
isForGroupBy,
|
||||
}: {
|
||||
fieldMetadata: FlatFieldMetadata;
|
||||
typeOptions: TypeOptions;
|
||||
logger: Logger;
|
||||
orderByDateGranularity?: boolean;
|
||||
isForGroupBy?: boolean;
|
||||
}) {
|
||||
if (
|
||||
orderByDateGranularity === true &&
|
||||
isForGroupBy === true &&
|
||||
(fieldMetadata.type === FieldMetadataType.DATE ||
|
||||
fieldMetadata.type === FieldMetadataType.DATE_TIME)
|
||||
) {
|
||||
|
||||
+1
-1
@@ -142,7 +142,7 @@ export class ObjectMetadataOrderByWithGroupByGqlInputTypeGenerator {
|
||||
return this.objectMetadataOrderByBaseGenerator.generateFields({
|
||||
fields,
|
||||
logger: this.logger,
|
||||
orderByDateGranularity: true,
|
||||
isForGroupBy: true,
|
||||
context,
|
||||
});
|
||||
}
|
||||
|
||||
+5
-1
@@ -118,12 +118,14 @@ export class RelationFieldMetadataGqlInputTypeGenerator {
|
||||
public generateSimpleRelationFieldOrderByInputType({
|
||||
fieldMetadata,
|
||||
typeOptions,
|
||||
isForGroupBy,
|
||||
context,
|
||||
}: {
|
||||
fieldMetadata: FlatFieldMetadata<
|
||||
FieldMetadataType.RELATION | FieldMetadataType.MORPH_RELATION
|
||||
>;
|
||||
typeOptions: TypeOptions;
|
||||
isForGroupBy?: boolean;
|
||||
context?: SchemaGenerationContext;
|
||||
}) {
|
||||
if (fieldMetadata.settings?.relationType === RelationType.ONE_TO_MANY)
|
||||
@@ -168,7 +170,9 @@ export class RelationFieldMetadataGqlInputTypeGenerator {
|
||||
if (isDefined(targetObjectMetadata)) {
|
||||
const targetOrderByInputTypeKey = computeObjectMetadataInputTypeKey(
|
||||
targetObjectMetadata.nameSingular,
|
||||
GqlInputTypeDefinitionKind.OrderBy,
|
||||
isForGroupBy
|
||||
? GqlInputTypeDefinitionKind.OrderByWithGroupBy
|
||||
: GqlInputTypeDefinitionKind.OrderBy,
|
||||
);
|
||||
|
||||
const targetOrderByInputType = this.gqlTypesStorage.getGqlTypeByKey(
|
||||
|
||||
Reference in New Issue
Block a user