# This PR
Fixes an error on the FindMany REST API
I was getting the following error:
```
{
"statusCode": 400,
"error": "TypeError",
"messages": [
"Cannot read properties of undefined (reading 'fields')"
]
}
```
Now, it's working as expected
Related to #10521
cc: @Weiko @ijreilly
---------
Co-authored-by: Weiko <corentin@twenty.com>
This commit is contained in:
@ -6,7 +6,7 @@ import {
|
||||
fieldCurrencyMock,
|
||||
fieldNumberMock,
|
||||
fieldTextMock,
|
||||
objectMetadataItemMock,
|
||||
objectMetadataMapItemMock,
|
||||
} from 'src/engine/api/__mocks__/object-metadata-item.mock';
|
||||
import { FilterInputFactory } from 'src/engine/api/rest/input-factories/filter-input.factory';
|
||||
import { FieldMetadataMap } from 'src/engine/metadata-modules/types/field-metadata-map';
|
||||
@ -55,18 +55,18 @@ describe('FilterInputFactory', () => {
|
||||
};
|
||||
|
||||
const objectMetadataMapItem = {
|
||||
...objectMetadataItemMock,
|
||||
...objectMetadataMapItemMock,
|
||||
fieldsById,
|
||||
fieldsByName,
|
||||
};
|
||||
|
||||
const objectMetadataMaps = {
|
||||
byId: {
|
||||
[objectMetadataItemMock.id || 'mock-id']: objectMetadataMapItem,
|
||||
[objectMetadataMapItemMock.id || 'mock-id']: objectMetadataMapItem,
|
||||
},
|
||||
idByNameSingular: {
|
||||
[objectMetadataItemMock.nameSingular]:
|
||||
objectMetadataItemMock.id || 'mock-id',
|
||||
[objectMetadataMapItemMock.nameSingular]:
|
||||
objectMetadataMapItemMock.id || 'mock-id',
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@ -2,11 +2,22 @@ import { Test, TestingModule } from '@nestjs/testing';
|
||||
|
||||
import { OrderByDirection } from 'src/engine/api/graphql/workspace-query-builder/interfaces/object-record.interface';
|
||||
|
||||
import { objectMetadataItemMock } from 'src/engine/api/__mocks__/object-metadata-item.mock';
|
||||
import {
|
||||
objectMetadataMapItemMock,
|
||||
objectMetadataMapsMock,
|
||||
} from 'src/engine/api/__mocks__/object-metadata-item.mock';
|
||||
import { OrderByInputFactory } from 'src/engine/api/rest/input-factories/order-by-input.factory';
|
||||
import { ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-maps';
|
||||
import { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-metadata-maps';
|
||||
|
||||
describe('OrderByInputFactory', () => {
|
||||
const objectMetadata = { objectMetadataItem: objectMetadataItemMock };
|
||||
const objectMetadata: {
|
||||
objectMetadataMaps: ObjectMetadataMaps;
|
||||
objectMetadataMapItem: ObjectMetadataItemWithFieldMaps;
|
||||
} = {
|
||||
objectMetadataMaps: objectMetadataMapsMock,
|
||||
objectMetadataMapItem: objectMetadataMapItemMock,
|
||||
};
|
||||
|
||||
let service: OrderByInputFactory;
|
||||
|
||||
|
||||
@ -8,12 +8,20 @@ import {
|
||||
} from 'src/engine/api/graphql/workspace-query-builder/interfaces/object-record.interface';
|
||||
|
||||
import { checkArrayFields } from 'src/engine/api/rest/core/query-builder/utils/check-order-by.utils';
|
||||
import { ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-maps';
|
||||
import { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-metadata-maps';
|
||||
|
||||
export const DEFAULT_ORDER_DIRECTION = OrderByDirection.AscNullsFirst;
|
||||
|
||||
@Injectable()
|
||||
export class OrderByInputFactory {
|
||||
create(request: Request, objectMetadata): ObjectRecordOrderBy {
|
||||
create(
|
||||
request: Request,
|
||||
objectMetadata: {
|
||||
objectMetadataMaps: ObjectMetadataMaps;
|
||||
objectMetadataMapItem: ObjectMetadataItemWithFieldMaps;
|
||||
},
|
||||
): ObjectRecordOrderBy {
|
||||
const orderByQuery = request.query.order_by;
|
||||
|
||||
if (typeof orderByQuery !== 'string') {
|
||||
@ -72,7 +80,7 @@ export class OrderByInputFactory {
|
||||
result = [...result, ...resultFields];
|
||||
}
|
||||
|
||||
checkArrayFields(objectMetadata.objectMetadataItem, result);
|
||||
checkArrayFields(objectMetadata.objectMetadataMapItem, result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user