diff --git a/packages/twenty-server/src/engine/api/rest/metadata/query-builder/utils/fetch-metadata-fields.utils.ts b/packages/twenty-server/src/engine/api/rest/metadata/query-builder/utils/fetch-metadata-fields.utils.ts index 2091541eab..21b7f6b4ea 100644 --- a/packages/twenty-server/src/engine/api/rest/metadata/query-builder/utils/fetch-metadata-fields.utils.ts +++ b/packages/twenty-server/src/engine/api/rest/metadata/query-builder/utils/fetch-metadata-fields.utils.ts @@ -1,3 +1,4 @@ +import { hasSelectAllFieldsSelector } from 'src/engine/api/rest/metadata/query-builder/utils/has-select-all-fields-selector.util'; import { Selectors } from 'src/engine/api/rest/metadata/types/metadata-query.type'; export const fetchMetadataFields = ( @@ -41,7 +42,9 @@ export const fetchMetadataFields = ( } `; - const fieldsSelection = selector?.fields?.join('\n') ?? defaultFields; + const fieldsSelection = hasSelectAllFieldsSelector(selector) + ? defaultFields + : (selector?.fields?.join('\n') ?? defaultFields); switch (objectNamePlural) { case 'objects': { diff --git a/packages/twenty-server/src/engine/api/rest/metadata/query-builder/utils/has-select-all-fields-selector.util.ts b/packages/twenty-server/src/engine/api/rest/metadata/query-builder/utils/has-select-all-fields-selector.util.ts new file mode 100644 index 0000000000..a098435ea0 --- /dev/null +++ b/packages/twenty-server/src/engine/api/rest/metadata/query-builder/utils/has-select-all-fields-selector.util.ts @@ -0,0 +1,9 @@ +import { Selectors } from 'src/engine/api/rest/metadata/types/metadata-query.type'; + +export const hasSelectAllFieldsSelector = (selector: Selectors) => { + return ( + selector?.fields?.length && + selector?.fields.length === 1 && + selector?.fields.includes('*') + ); +}; diff --git a/packages/twenty-server/src/engine/api/rest/metadata/rest-api-metadata.service.ts b/packages/twenty-server/src/engine/api/rest/metadata/rest-api-metadata.service.ts index 3ffb4a18d8..e32ccd875f 100644 --- a/packages/twenty-server/src/engine/api/rest/metadata/rest-api-metadata.service.ts +++ b/packages/twenty-server/src/engine/api/rest/metadata/rest-api-metadata.service.ts @@ -24,7 +24,9 @@ export class RestApiMetadataService { async get(request: Request) { await this.accessTokenService.validateTokenByRequest(request); const requestContext = this.getRequestContext(request); - const data = await this.metadataQueryBuilderFactory.get(requestContext); + const data = await this.metadataQueryBuilderFactory.get(requestContext, { + fields: ['*'], + }); return await this.restApiService.call( GraphqlApiType.METADATA, @@ -36,7 +38,9 @@ export class RestApiMetadataService { async create(request: Request) { await this.accessTokenService.validateTokenByRequest(request); const requestContext = this.getRequestContext(request); - const data = await this.metadataQueryBuilderFactory.create(requestContext); + const data = await this.metadataQueryBuilderFactory.create(requestContext, { + fields: ['*'], + }); return await this.restApiService.call( GraphqlApiType.METADATA, @@ -48,7 +52,9 @@ export class RestApiMetadataService { async update(request: Request) { await this.accessTokenService.validateTokenByRequest(request); const requestContext = this.getRequestContext(request); - const data = await this.metadataQueryBuilderFactory.update(requestContext); + const data = await this.metadataQueryBuilderFactory.update(requestContext, { + fields: ['*'], + }); return await this.restApiService.call( GraphqlApiType.METADATA,