Replace ObjectMetadataInterface by ObjectMetadataEntity (#13317)
# Introduction Following https://github.com/twentyhq/twenty/pull/13310 > After this PR merge will create a new one removing the type and replacing it to ObjectMetadataEntity. This is it !
This commit is contained in:
@ -1,13 +1,13 @@
|
|||||||
import { GraphQLResolveInfo } from 'graphql';
|
import { GraphQLResolveInfo } from 'graphql';
|
||||||
|
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
import { WorkspaceQueryBuilderOptions } from 'src/engine/api/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface';
|
import { WorkspaceQueryBuilderOptions } from 'src/engine/api/graphql/workspace-query-builder/interfaces/workspace-query-builder-options.interface';
|
||||||
|
|
||||||
import { objectMetadataItemMock } from 'src/engine/api/__mocks__/object-metadata-item.mock';
|
import { objectMetadataItemMock } from 'src/engine/api/__mocks__/object-metadata-item.mock';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
export const workspaceQueryBuilderOptionsMock: WorkspaceQueryBuilderOptions = {
|
export const workspaceQueryBuilderOptionsMock: WorkspaceQueryBuilderOptions = {
|
||||||
fieldMetadataCollection: [],
|
fieldMetadataCollection: [],
|
||||||
info: {} as GraphQLResolveInfo,
|
info: {} as GraphQLResolveInfo,
|
||||||
objectMetadataCollection: [],
|
objectMetadataCollection: [],
|
||||||
objectMetadataItem: objectMetadataItemMock as ObjectMetadataInterface,
|
objectMetadataItem: objectMetadataItemMock as ObjectMetadataEntity,
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,13 +1,12 @@
|
|||||||
import { GraphQLResolveInfo } from 'graphql';
|
import { GraphQLResolveInfo } from 'graphql';
|
||||||
|
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
export interface WorkspaceQueryBuilderOptions {
|
export interface WorkspaceQueryBuilderOptions {
|
||||||
objectMetadataItem: ObjectMetadataInterface;
|
objectMetadataItem: ObjectMetadataEntity;
|
||||||
info: GraphQLResolveInfo;
|
info: GraphQLResolveInfo;
|
||||||
fieldMetadataCollection: FieldMetadataEntity[];
|
fieldMetadataCollection: FieldMetadataEntity[];
|
||||||
objectMetadataCollection: ObjectMetadataInterface[];
|
objectMetadataCollection: ObjectMetadataEntity[];
|
||||||
withSoftDeleted?: boolean;
|
withSoftDeleted?: boolean;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,16 +3,16 @@ import { Injectable } from '@nestjs/common';
|
|||||||
import { isDefined } from 'twenty-shared/utils';
|
import { isDefined } from 'twenty-shared/utils';
|
||||||
|
|
||||||
import { WorkspaceResolverBuilderMethodNames } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
|
import { WorkspaceResolverBuilderMethodNames } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import { FindDuplicatesResolverFactory } from 'src/engine/api/graphql/workspace-resolver-builder/factories/find-duplicates-resolver.factory';
|
import { FindDuplicatesResolverFactory } from 'src/engine/api/graphql/workspace-resolver-builder/factories/find-duplicates-resolver.factory';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class WorkspaceResolverBuilderService {
|
export class WorkspaceResolverBuilderService {
|
||||||
constructor() {}
|
constructor() {}
|
||||||
|
|
||||||
shouldBuildResolver(
|
shouldBuildResolver(
|
||||||
objectMetadata: Pick<ObjectMetadataInterface, 'duplicateCriteria'>,
|
objectMetadata: Pick<ObjectMetadataEntity, 'duplicateCriteria'>,
|
||||||
methodName: WorkspaceResolverBuilderMethodNames,
|
methodName: WorkspaceResolverBuilderMethodNames,
|
||||||
) {
|
) {
|
||||||
switch (methodName) {
|
switch (methodName) {
|
||||||
|
|||||||
@ -1,18 +1,17 @@
|
|||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
|
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
AggregationField,
|
AggregationField,
|
||||||
getAvailableAggregationsFromObjectFields,
|
getAvailableAggregationsFromObjectFields,
|
||||||
} from 'src/engine/api/graphql/workspace-schema-builder/utils/get-available-aggregations-from-object-fields.util';
|
} from 'src/engine/api/graphql/workspace-schema-builder/utils/get-available-aggregations-from-object-fields.util';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
type AggregationGraphQLType = Pick<AggregationField, 'type' | 'description'>;
|
type AggregationGraphQLType = Pick<AggregationField, 'type' | 'description'>;
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class AggregationTypeFactory {
|
export class AggregationTypeFactory {
|
||||||
public create(
|
public create(
|
||||||
objectMetadata: ObjectMetadataInterface,
|
objectMetadata: ObjectMetadataEntity,
|
||||||
): Record<string, AggregationGraphQLType> {
|
): Record<string, AggregationGraphQLType> {
|
||||||
const availableAggregations = getAvailableAggregationsFromObjectFields(
|
const availableAggregations = getAvailableAggregationsFromObjectFields(
|
||||||
objectMetadata.fields,
|
objectMetadata.fields,
|
||||||
|
|||||||
@ -2,11 +2,11 @@ import { Injectable, Logger } from '@nestjs/common';
|
|||||||
|
|
||||||
import { GraphQLFieldConfigArgumentMap } from 'graphql';
|
import { GraphQLFieldConfigArgumentMap } from 'graphql';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
|
||||||
import { ArgsMetadata } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/param-metadata.interface';
|
import { ArgsMetadata } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/param-metadata.interface';
|
||||||
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
|
|
||||||
import { TypeDefinitionsStorage } from 'src/engine/api/graphql/workspace-schema-builder/storages/type-definitions.storage';
|
|
||||||
import { TypeMapperService } from 'src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service';
|
import { TypeMapperService } from 'src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service';
|
||||||
|
import { TypeDefinitionsStorage } from 'src/engine/api/graphql/workspace-schema-builder/storages/type-definitions.storage';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ArgsFactory {
|
export class ArgsFactory {
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { Injectable, Logger } from '@nestjs/common';
|
|||||||
import { GraphQLEnumType } from 'graphql';
|
import { GraphQLEnumType } from 'graphql';
|
||||||
import { FieldMetadataType } from 'twenty-shared/types';
|
import { FieldMetadataType } from 'twenty-shared/types';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
import {
|
import {
|
||||||
CompositeProperty,
|
CompositeProperty,
|
||||||
CompositeType,
|
CompositeType,
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { Injectable, Logger } from '@nestjs/common';
|
|||||||
import { GraphQLInputFieldConfigMap, GraphQLInputObjectType } from 'graphql';
|
import { GraphQLInputFieldConfigMap, GraphQLInputObjectType } from 'graphql';
|
||||||
import { FieldMetadataType } from 'twenty-shared/types';
|
import { FieldMetadataType } from 'twenty-shared/types';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
import { CompositeType } from 'src/engine/metadata-modules/field-metadata/interfaces/composite-type.interface';
|
import { CompositeType } from 'src/engine/metadata-modules/field-metadata/interfaces/composite-type.interface';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { Injectable, Logger } from '@nestjs/common';
|
|||||||
import { GraphQLFieldConfigMap, GraphQLObjectType } from 'graphql';
|
import { GraphQLFieldConfigMap, GraphQLObjectType } from 'graphql';
|
||||||
import { FieldMetadataType } from 'twenty-shared/types';
|
import { FieldMetadataType } from 'twenty-shared/types';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
import { CompositeType } from 'src/engine/metadata-modules/field-metadata/interfaces/composite-type.interface';
|
import { CompositeType } from 'src/engine/metadata-modules/field-metadata/interfaces/composite-type.interface';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
|||||||
@ -2,10 +2,10 @@ import { Injectable } from '@nestjs/common';
|
|||||||
|
|
||||||
import { GraphQLFieldConfigMap, GraphQLObjectType } from 'graphql';
|
import { GraphQLFieldConfigMap, GraphQLObjectType } from 'graphql';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import { AggregationTypeFactory } from 'src/engine/api/graphql/workspace-schema-builder/factories/aggregation-type.factory';
|
import { AggregationTypeFactory } from 'src/engine/api/graphql/workspace-schema-builder/factories/aggregation-type.factory';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
import { pascalCase } from 'src/utils/pascal-case';
|
import { pascalCase } from 'src/utils/pascal-case';
|
||||||
|
|
||||||
import { ConnectionTypeFactory } from './connection-type.factory';
|
import { ConnectionTypeFactory } from './connection-type.factory';
|
||||||
@ -27,7 +27,7 @@ export class ConnectionTypeDefinitionFactory {
|
|||||||
) {}
|
) {}
|
||||||
|
|
||||||
public create(
|
public create(
|
||||||
objectMetadata: ObjectMetadataInterface,
|
objectMetadata: ObjectMetadataEntity,
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
): ObjectTypeDefinition {
|
): ObjectTypeDefinition {
|
||||||
const kind = ObjectTypeDefinitionKind.Connection;
|
const kind = ObjectTypeDefinitionKind.Connection;
|
||||||
@ -44,12 +44,10 @@ export class ConnectionTypeDefinitionFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private generateFields(
|
private generateFields(
|
||||||
objectMetadata: ObjectMetadataInterface,
|
objectMetadata: ObjectMetadataEntity,
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
): GraphQLFieldConfigMap<any, any> {
|
): GraphQLFieldConfigMap<any, any> {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
const fields: GraphQLFieldConfigMap<any, any> = {};
|
const fields: GraphQLFieldConfigMap<any, any> = {};
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,7 @@ import { Injectable, Logger } from '@nestjs/common';
|
|||||||
|
|
||||||
import { GraphQLOutputType } from 'graphql';
|
import { GraphQLOutputType } from 'graphql';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import { PageInfoType } from 'src/engine/api/graphql/workspace-schema-builder/graphql-types/object';
|
import { PageInfoType } from 'src/engine/api/graphql/workspace-schema-builder/graphql-types/object';
|
||||||
import {
|
import {
|
||||||
@ -11,6 +10,7 @@ import {
|
|||||||
TypeOptions,
|
TypeOptions,
|
||||||
} from 'src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service';
|
} from 'src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service';
|
||||||
import { TypeDefinitionsStorage } from 'src/engine/api/graphql/workspace-schema-builder/storages/type-definitions.storage';
|
import { TypeDefinitionsStorage } from 'src/engine/api/graphql/workspace-schema-builder/storages/type-definitions.storage';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
import { ConnectionTypeDefinitionKind } from './connection-type-definition.factory';
|
import { ConnectionTypeDefinitionKind } from './connection-type-definition.factory';
|
||||||
import { ObjectTypeDefinitionKind } from './object-type-definition.factory';
|
import { ObjectTypeDefinitionKind } from './object-type-definition.factory';
|
||||||
@ -25,7 +25,7 @@ export class ConnectionTypeFactory {
|
|||||||
) {}
|
) {}
|
||||||
|
|
||||||
public create(
|
public create(
|
||||||
objectMetadata: ObjectMetadataInterface,
|
objectMetadata: ObjectMetadataEntity,
|
||||||
kind: ConnectionTypeDefinitionKind,
|
kind: ConnectionTypeDefinitionKind,
|
||||||
buildOptions: WorkspaceBuildSchemaOptions,
|
buildOptions: WorkspaceBuildSchemaOptions,
|
||||||
typeOptions: TypeOptions,
|
typeOptions: TypeOptions,
|
||||||
|
|||||||
@ -2,16 +2,16 @@ import { Injectable } from '@nestjs/common';
|
|||||||
|
|
||||||
import { GraphQLFieldConfigMap, GraphQLObjectType } from 'graphql';
|
import { GraphQLFieldConfigMap, GraphQLObjectType } from 'graphql';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
import { pascalCase } from 'src/utils/pascal-case';
|
import { pascalCase } from 'src/utils/pascal-case';
|
||||||
|
|
||||||
|
import { EdgeTypeFactory } from './edge-type.factory';
|
||||||
import {
|
import {
|
||||||
ObjectTypeDefinition,
|
ObjectTypeDefinition,
|
||||||
ObjectTypeDefinitionKind,
|
ObjectTypeDefinitionKind,
|
||||||
} from './object-type-definition.factory';
|
} from './object-type-definition.factory';
|
||||||
import { EdgeTypeFactory } from './edge-type.factory';
|
|
||||||
|
|
||||||
export enum EdgeTypeDefinitionKind {
|
export enum EdgeTypeDefinitionKind {
|
||||||
Node = 'Node',
|
Node = 'Node',
|
||||||
@ -23,7 +23,7 @@ export class EdgeTypeDefinitionFactory {
|
|||||||
constructor(private readonly edgeTypeFactory: EdgeTypeFactory) {}
|
constructor(private readonly edgeTypeFactory: EdgeTypeFactory) {}
|
||||||
|
|
||||||
public create(
|
public create(
|
||||||
objectMetadata: ObjectMetadataInterface,
|
objectMetadata: ObjectMetadataEntity,
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
): ObjectTypeDefinition {
|
): ObjectTypeDefinition {
|
||||||
const kind = ObjectTypeDefinitionKind.Edge;
|
const kind = ObjectTypeDefinitionKind.Edge;
|
||||||
@ -40,7 +40,7 @@ export class EdgeTypeDefinitionFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private generateFields(
|
private generateFields(
|
||||||
objectMetadata: ObjectMetadataInterface,
|
objectMetadata: ObjectMetadataEntity,
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
|
|||||||
@ -2,8 +2,7 @@ import { Injectable, Logger } from '@nestjs/common';
|
|||||||
|
|
||||||
import { GraphQLOutputType } from 'graphql';
|
import { GraphQLOutputType } from 'graphql';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import { CursorScalarType } from 'src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars';
|
import { CursorScalarType } from 'src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars';
|
||||||
import {
|
import {
|
||||||
@ -11,6 +10,7 @@ import {
|
|||||||
TypeOptions,
|
TypeOptions,
|
||||||
} from 'src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service';
|
} from 'src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service';
|
||||||
import { TypeDefinitionsStorage } from 'src/engine/api/graphql/workspace-schema-builder/storages/type-definitions.storage';
|
import { TypeDefinitionsStorage } from 'src/engine/api/graphql/workspace-schema-builder/storages/type-definitions.storage';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
import { EdgeTypeDefinitionKind } from './edge-type-definition.factory';
|
import { EdgeTypeDefinitionKind } from './edge-type-definition.factory';
|
||||||
import { ObjectTypeDefinitionKind } from './object-type-definition.factory';
|
import { ObjectTypeDefinitionKind } from './object-type-definition.factory';
|
||||||
@ -25,7 +25,7 @@ export class EdgeTypeFactory {
|
|||||||
) {}
|
) {}
|
||||||
|
|
||||||
public create(
|
public create(
|
||||||
objectMetadata: ObjectMetadataInterface,
|
objectMetadata: ObjectMetadataEntity,
|
||||||
kind: EdgeTypeDefinitionKind,
|
kind: EdgeTypeDefinitionKind,
|
||||||
buildOptions: WorkspaceBuildSchemaOptions,
|
buildOptions: WorkspaceBuildSchemaOptions,
|
||||||
typeOptions: TypeOptions,
|
typeOptions: TypeOptions,
|
||||||
|
|||||||
@ -3,8 +3,7 @@ import { Injectable, Logger } from '@nestjs/common';
|
|||||||
import { GraphQLEnumType } from 'graphql';
|
import { GraphQLEnumType } from 'graphql';
|
||||||
import { isDefined } from 'twenty-shared/utils';
|
import { isDefined } from 'twenty-shared/utils';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
FieldMetadataComplexOption,
|
FieldMetadataComplexOption,
|
||||||
@ -12,6 +11,7 @@ import {
|
|||||||
} from 'src/engine/metadata-modules/field-metadata/dtos/options.input';
|
} from 'src/engine/metadata-modules/field-metadata/dtos/options.input';
|
||||||
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
||||||
import { isEnumFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-enum-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 { transformEnumValue } from 'src/engine/utils/transform-enum-value';
|
import { transformEnumValue } from 'src/engine/utils/transform-enum-value';
|
||||||
import { pascalCase } from 'src/utils/pascal-case';
|
import { pascalCase } from 'src/utils/pascal-case';
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ export class EnumTypeDefinitionFactory {
|
|||||||
private readonly logger = new Logger(EnumTypeDefinitionFactory.name);
|
private readonly logger = new Logger(EnumTypeDefinitionFactory.name);
|
||||||
|
|
||||||
public create(
|
public create(
|
||||||
objectMetadata: ObjectMetadataInterface,
|
objectMetadata: ObjectMetadataEntity,
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
): EnumTypeDefinition[] {
|
): EnumTypeDefinition[] {
|
||||||
const enumTypeDefinitions: EnumTypeDefinition[] = [];
|
const enumTypeDefinitions: EnumTypeDefinition[] = [];
|
||||||
|
|||||||
@ -7,14 +7,14 @@ import {
|
|||||||
} from 'graphql';
|
} from 'graphql';
|
||||||
import { FieldMetadataType } from 'twenty-shared/types';
|
import { FieldMetadataType } from 'twenty-shared/types';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
|
|
||||||
import { RelationTypeV2Factory } from 'src/engine/api/graphql/workspace-schema-builder/factories/relation-type-v2.factory';
|
import { RelationTypeV2Factory } from 'src/engine/api/graphql/workspace-schema-builder/factories/relation-type-v2.factory';
|
||||||
import { TypeDefinitionsStorage } from 'src/engine/api/graphql/workspace-schema-builder/storages/type-definitions.storage';
|
import { TypeDefinitionsStorage } from 'src/engine/api/graphql/workspace-schema-builder/storages/type-definitions.storage';
|
||||||
import { getResolverArgs } from 'src/engine/api/graphql/workspace-schema-builder/utils/get-resolver-args.util';
|
import { getResolverArgs } from 'src/engine/api/graphql/workspace-schema-builder/utils/get-resolver-args.util';
|
||||||
import { objectContainsRelationField } from 'src/engine/api/graphql/workspace-schema-builder/utils/object-contains-relation-field';
|
import { objectContainsRelationField } from 'src/engine/api/graphql/workspace-schema-builder/utils/object-contains-relation-field';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
import { isFieldMetadataEntityOfType } from 'src/engine/utils/is-field-metadata-of-type.util';
|
import { isFieldMetadataEntityOfType } from 'src/engine/utils/is-field-metadata-of-type.util';
|
||||||
|
|
||||||
import { ArgsFactory } from './args.factory';
|
import { ArgsFactory } from './args.factory';
|
||||||
@ -44,7 +44,7 @@ export class ExtendObjectTypeDefinitionV2Factory {
|
|||||||
) {}
|
) {}
|
||||||
|
|
||||||
public create(
|
public create(
|
||||||
objectMetadata: ObjectMetadataInterface,
|
objectMetadata: ObjectMetadataEntity,
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
): ObjectTypeDefinition {
|
): ObjectTypeDefinition {
|
||||||
const kind = ObjectTypeDefinitionKind.Plain;
|
const kind = ObjectTypeDefinitionKind.Plain;
|
||||||
@ -101,12 +101,10 @@ export class ExtendObjectTypeDefinitionV2Factory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private generateFields(
|
private generateFields(
|
||||||
objectMetadata: ObjectMetadataInterface,
|
objectMetadata: ObjectMetadataEntity,
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
): GraphQLFieldConfigMap<any, any> {
|
): GraphQLFieldConfigMap<any, any> {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
const fields: GraphQLFieldConfigMap<any, any> = {};
|
const fields: GraphQLFieldConfigMap<any, any> = {};
|
||||||
|
|
||||||
|
|||||||
@ -2,11 +2,11 @@ import { Inject, Injectable, forwardRef } from '@nestjs/common';
|
|||||||
|
|
||||||
import { GraphQLInputObjectType } from 'graphql';
|
import { GraphQLInputObjectType } from 'graphql';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import { TypeMapperService } from 'src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service';
|
import { TypeMapperService } from 'src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service';
|
||||||
import { generateFields } from 'src/engine/api/graphql/workspace-schema-builder/utils/generate-fields.utils';
|
import { generateFields } from 'src/engine/api/graphql/workspace-schema-builder/utils/generate-fields.utils';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
import { pascalCase } from 'src/utils/pascal-case';
|
import { pascalCase } from 'src/utils/pascal-case';
|
||||||
|
|
||||||
import { InputTypeFactory } from './input-type.factory';
|
import { InputTypeFactory } from './input-type.factory';
|
||||||
@ -37,7 +37,7 @@ export class InputTypeDefinitionFactory {
|
|||||||
kind,
|
kind,
|
||||||
options,
|
options,
|
||||||
}: {
|
}: {
|
||||||
objectMetadata: ObjectMetadataInterface;
|
objectMetadata: ObjectMetadataEntity;
|
||||||
kind: InputTypeDefinitionKind;
|
kind: InputTypeDefinitionKind;
|
||||||
options: WorkspaceBuildSchemaOptions;
|
options: WorkspaceBuildSchemaOptions;
|
||||||
}): InputTypeDefinition {
|
}): InputTypeDefinition {
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import {
|
|||||||
} from 'graphql';
|
} from 'graphql';
|
||||||
import { FieldMetadataType } from 'twenty-shared/types';
|
import { FieldMetadataType } from 'twenty-shared/types';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
|
|
||||||
import { FilterIs } from 'src/engine/api/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type';
|
import { FilterIs } from 'src/engine/api/graphql/workspace-schema-builder/graphql-types/input/filter-is.input-type';
|
||||||
import {
|
import {
|
||||||
|
|||||||
@ -2,9 +2,10 @@ import { Injectable } from '@nestjs/common';
|
|||||||
|
|
||||||
import { GraphQLObjectType } from 'graphql';
|
import { GraphQLObjectType } from 'graphql';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
|
||||||
import { WorkspaceResolverBuilderMutationMethodNames } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
|
import { WorkspaceResolverBuilderMutationMethodNames } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
|
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
import { ObjectTypeName, RootTypeFactory } from './root-type.factory';
|
import { ObjectTypeName, RootTypeFactory } from './root-type.factory';
|
||||||
|
|
||||||
@ -13,7 +14,7 @@ export class MutationTypeFactory {
|
|||||||
constructor(private readonly rootTypeFactory: RootTypeFactory) {}
|
constructor(private readonly rootTypeFactory: RootTypeFactory) {}
|
||||||
|
|
||||||
create(
|
create(
|
||||||
objectMetadataCollection: ObjectMetadataInterface[],
|
objectMetadataCollection: ObjectMetadataEntity[],
|
||||||
workspaceResolverMethodNames: WorkspaceResolverBuilderMutationMethodNames[],
|
workspaceResolverMethodNames: WorkspaceResolverBuilderMutationMethodNames[],
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
): GraphQLObjectType {
|
): GraphQLObjectType {
|
||||||
|
|||||||
@ -2,10 +2,10 @@ import { Injectable } from '@nestjs/common';
|
|||||||
|
|
||||||
import { GraphQLObjectType } from 'graphql';
|
import { GraphQLObjectType } from 'graphql';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import { generateFields } from 'src/engine/api/graphql/workspace-schema-builder/utils/generate-fields.utils';
|
import { generateFields } from 'src/engine/api/graphql/workspace-schema-builder/utils/generate-fields.utils';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
import { pascalCase } from 'src/utils/pascal-case';
|
import { pascalCase } from 'src/utils/pascal-case';
|
||||||
|
|
||||||
import { OutputTypeFactory } from './output-type.factory';
|
import { OutputTypeFactory } from './output-type.factory';
|
||||||
@ -27,7 +27,7 @@ export class ObjectTypeDefinitionFactory {
|
|||||||
constructor(private readonly outputTypeFactory: OutputTypeFactory) {}
|
constructor(private readonly outputTypeFactory: OutputTypeFactory) {}
|
||||||
|
|
||||||
public create(
|
public create(
|
||||||
objectMetadata: ObjectMetadataInterface,
|
objectMetadata: ObjectMetadataEntity,
|
||||||
kind: ObjectTypeDefinitionKind,
|
kind: ObjectTypeDefinitionKind,
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
): ObjectTypeDefinition {
|
): ObjectTypeDefinition {
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { Injectable, Logger } from '@nestjs/common';
|
|||||||
import { GraphQLOutputType } from 'graphql';
|
import { GraphQLOutputType } from 'graphql';
|
||||||
import { FieldMetadataType } from 'twenty-shared/types';
|
import { FieldMetadataType } from 'twenty-shared/types';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
TypeMapperService,
|
TypeMapperService,
|
||||||
|
|||||||
@ -2,9 +2,10 @@ import { Injectable } from '@nestjs/common';
|
|||||||
|
|
||||||
import { GraphQLObjectType } from 'graphql';
|
import { GraphQLObjectType } from 'graphql';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
|
||||||
import { WorkspaceResolverBuilderQueryMethodNames } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
|
import { WorkspaceResolverBuilderQueryMethodNames } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
|
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
import { ObjectTypeName, RootTypeFactory } from './root-type.factory';
|
import { ObjectTypeName, RootTypeFactory } from './root-type.factory';
|
||||||
|
|
||||||
@ -13,7 +14,7 @@ export class QueryTypeFactory {
|
|||||||
constructor(private readonly rootTypeFactory: RootTypeFactory) {}
|
constructor(private readonly rootTypeFactory: RootTypeFactory) {}
|
||||||
|
|
||||||
create(
|
create(
|
||||||
objectMetadataCollection: ObjectMetadataInterface[],
|
objectMetadataCollection: ObjectMetadataEntity[],
|
||||||
workspaceResolverMethodNames: WorkspaceResolverBuilderQueryMethodNames[],
|
workspaceResolverMethodNames: WorkspaceResolverBuilderQueryMethodNames[],
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
): GraphQLObjectType {
|
): GraphQLObjectType {
|
||||||
|
|||||||
@ -7,8 +7,6 @@ import {
|
|||||||
GraphQLString,
|
GraphQLString,
|
||||||
} from 'graphql';
|
} from 'graphql';
|
||||||
|
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
InputTypeDefinition,
|
InputTypeDefinition,
|
||||||
InputTypeDefinitionKind,
|
InputTypeDefinitionKind,
|
||||||
@ -18,6 +16,7 @@ import { compositeTypeDefinitions } from 'src/engine/metadata-modules/field-meta
|
|||||||
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
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 { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util';
|
||||||
import { getUniqueConstraintsFields } from 'src/engine/metadata-modules/index-metadata/utils/getUniqueConstraintsFields.util';
|
import { getUniqueConstraintsFields } from 'src/engine/metadata-modules/index-metadata/utils/getUniqueConstraintsFields.util';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
import { pascalCase } from 'src/utils/pascal-case';
|
import { pascalCase } from 'src/utils/pascal-case';
|
||||||
|
|
||||||
export const formatRelationConnectInputTarget = (objectMetadataId: string) =>
|
export const formatRelationConnectInputTarget = (objectMetadataId: string) =>
|
||||||
@ -27,9 +26,7 @@ export const formatRelationConnectInputTarget = (objectMetadataId: string) =>
|
|||||||
export class RelationConnectInputTypeDefinitionFactory {
|
export class RelationConnectInputTypeDefinitionFactory {
|
||||||
constructor(private readonly typeMapperService: TypeMapperService) {}
|
constructor(private readonly typeMapperService: TypeMapperService) {}
|
||||||
|
|
||||||
public create(
|
public create(objectMetadata: ObjectMetadataEntity): InputTypeDefinition[] {
|
||||||
objectMetadata: ObjectMetadataInterface,
|
|
||||||
): InputTypeDefinition[] {
|
|
||||||
const fields = this.generateRelationConnectInputType(objectMetadata);
|
const fields = this.generateRelationConnectInputType(objectMetadata);
|
||||||
const target = formatRelationConnectInputTarget(objectMetadata.id);
|
const target = formatRelationConnectInputTarget(objectMetadata.id);
|
||||||
|
|
||||||
@ -43,7 +40,7 @@ export class RelationConnectInputTypeDefinitionFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private generateRelationConnectInputType(
|
private generateRelationConnectInputType(
|
||||||
objectMetadata: ObjectMetadataInterface,
|
objectMetadata: ObjectMetadataEntity,
|
||||||
): GraphQLInputObjectType {
|
): GraphQLInputObjectType {
|
||||||
return new GraphQLInputObjectType({
|
return new GraphQLInputObjectType({
|
||||||
name: `${pascalCase(objectMetadata.nameSingular)}RelationInput`,
|
name: `${pascalCase(objectMetadata.nameSingular)}RelationInput`,
|
||||||
@ -60,11 +57,11 @@ export class RelationConnectInputTypeDefinitionFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private generateRelationWhereInputType(
|
private generateRelationWhereInputType(
|
||||||
objectMetadata: ObjectMetadataInterface,
|
objectMetadata: ObjectMetadataEntity,
|
||||||
): Record<string, GraphQLInputFieldConfig> {
|
): Record<string, GraphQLInputFieldConfig> {
|
||||||
const uniqueConstraints = getUniqueConstraintsFields<
|
const uniqueConstraints = getUniqueConstraintsFields<
|
||||||
FieldMetadataEntity,
|
FieldMetadataEntity,
|
||||||
ObjectMetadataInterface
|
ObjectMetadataEntity
|
||||||
>(objectMetadata);
|
>(objectMetadata);
|
||||||
|
|
||||||
const fields: Record<
|
const fields: Record<
|
||||||
|
|||||||
@ -3,13 +3,13 @@ import { Injectable, Logger } from '@nestjs/common';
|
|||||||
import { GraphQLFieldConfigMap, GraphQLObjectType } from 'graphql';
|
import { GraphQLFieldConfigMap, GraphQLObjectType } from 'graphql';
|
||||||
|
|
||||||
import { WorkspaceResolverBuilderMethodNames } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
|
import { WorkspaceResolverBuilderMethodNames } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import { WorkspaceResolverBuilderService } from 'src/engine/api/graphql/workspace-resolver-builder/workspace-resolver-builder.service';
|
import { WorkspaceResolverBuilderService } from 'src/engine/api/graphql/workspace-resolver-builder/workspace-resolver-builder.service';
|
||||||
import { TypeMapperService } from 'src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service';
|
import { TypeMapperService } from 'src/engine/api/graphql/workspace-schema-builder/services/type-mapper.service';
|
||||||
import { TypeDefinitionsStorage } from 'src/engine/api/graphql/workspace-schema-builder/storages/type-definitions.storage';
|
import { TypeDefinitionsStorage } from 'src/engine/api/graphql/workspace-schema-builder/storages/type-definitions.storage';
|
||||||
import { getResolverArgs } from 'src/engine/api/graphql/workspace-schema-builder/utils/get-resolver-args.util';
|
import { getResolverArgs } from 'src/engine/api/graphql/workspace-schema-builder/utils/get-resolver-args.util';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
import { getResolverName } from 'src/engine/utils/get-resolver-name.util';
|
import { getResolverName } from 'src/engine/utils/get-resolver-name.util';
|
||||||
|
|
||||||
import { ArgsFactory } from './args.factory';
|
import { ArgsFactory } from './args.factory';
|
||||||
@ -33,7 +33,7 @@ export class RootTypeFactory {
|
|||||||
) {}
|
) {}
|
||||||
|
|
||||||
create(
|
create(
|
||||||
objectMetadataCollection: ObjectMetadataInterface[],
|
objectMetadataCollection: ObjectMetadataEntity[],
|
||||||
workspaceResolverMethodNames: WorkspaceResolverBuilderMethodNames[],
|
workspaceResolverMethodNames: WorkspaceResolverBuilderMethodNames[],
|
||||||
objectTypeName: ObjectTypeName,
|
objectTypeName: ObjectTypeName,
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
@ -63,10 +63,9 @@ export class RootTypeFactory {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
private generateFields<T = any, U = any>(
|
private generateFields<T = any, U = any>(
|
||||||
objectMetadataCollection: ObjectMetadataInterface[],
|
objectMetadataCollection: ObjectMetadataEntity[],
|
||||||
workspaceResolverMethodNames: WorkspaceResolverBuilderMethodNames[],
|
workspaceResolverMethodNames: WorkspaceResolverBuilderMethodNames[],
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
): GraphQLFieldConfigMap<T, U> {
|
): GraphQLFieldConfigMap<T, U> {
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
import { Injectable, Logger } from '@nestjs/common';
|
import { Injectable, Logger } from '@nestjs/common';
|
||||||
|
|
||||||
import { CompositeType } from 'src/engine/metadata-modules/field-metadata/interfaces/composite-type.interface';
|
import { CompositeType } from 'src/engine/metadata-modules/field-metadata/interfaces/composite-type.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import { CompositeEnumTypeDefinitionFactory } from 'src/engine/api/graphql/workspace-schema-builder/factories/composite-enum-type-definition.factory';
|
import { CompositeEnumTypeDefinitionFactory } from 'src/engine/api/graphql/workspace-schema-builder/factories/composite-enum-type-definition.factory';
|
||||||
import { CompositeInputTypeDefinitionFactory } from 'src/engine/api/graphql/workspace-schema-builder/factories/composite-input-type-definition.factory';
|
import { CompositeInputTypeDefinitionFactory } from 'src/engine/api/graphql/workspace-schema-builder/factories/composite-input-type-definition.factory';
|
||||||
@ -11,6 +10,7 @@ import { ExtendObjectTypeDefinitionV2Factory } from 'src/engine/api/graphql/work
|
|||||||
import { RelationConnectInputTypeDefinitionFactory } from 'src/engine/api/graphql/workspace-schema-builder/factories/relation-connect-input-type-definition.factory';
|
import { RelationConnectInputTypeDefinitionFactory } from 'src/engine/api/graphql/workspace-schema-builder/factories/relation-connect-input-type-definition.factory';
|
||||||
import { FeatureFlagService } from 'src/engine/core-modules/feature-flag/services/feature-flag.service';
|
import { FeatureFlagService } from 'src/engine/core-modules/feature-flag/services/feature-flag.service';
|
||||||
import { compositeTypeDefinitions } from 'src/engine/metadata-modules/field-metadata/composite-types';
|
import { compositeTypeDefinitions } from 'src/engine/metadata-modules/field-metadata/composite-types';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
import { ConnectionTypeDefinitionFactory } from './factories/connection-type-definition.factory';
|
import { ConnectionTypeDefinitionFactory } from './factories/connection-type-definition.factory';
|
||||||
import { EdgeTypeDefinitionFactory } from './factories/edge-type-definition.factory';
|
import { EdgeTypeDefinitionFactory } from './factories/edge-type-definition.factory';
|
||||||
@ -22,7 +22,7 @@ import {
|
|||||||
ObjectTypeDefinitionFactory,
|
ObjectTypeDefinitionFactory,
|
||||||
ObjectTypeDefinitionKind,
|
ObjectTypeDefinitionKind,
|
||||||
} from './factories/object-type-definition.factory';
|
} from './factories/object-type-definition.factory';
|
||||||
import { WorkspaceBuildSchemaOptions } from './interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from './interfaces/workspace-build-schema-options.interface';
|
||||||
import { TypeDefinitionsStorage } from './storages/type-definitions.storage';
|
import { TypeDefinitionsStorage } from './storages/type-definitions.storage';
|
||||||
import { objectContainsRelationField } from './utils/object-contains-relation-field';
|
import { objectContainsRelationField } from './utils/object-contains-relation-field';
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ export class TypeDefinitionsGenerator {
|
|||||||
) {}
|
) {}
|
||||||
|
|
||||||
async generate(
|
async generate(
|
||||||
objectMetadataCollection: ObjectMetadataInterface[],
|
objectMetadataCollection: ObjectMetadataEntity[],
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
) {
|
) {
|
||||||
// Generate composite type objects first because they can be used in dynamic objects
|
// Generate composite type objects first because they can be used in dynamic objects
|
||||||
@ -152,7 +152,7 @@ export class TypeDefinitionsGenerator {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
private async generateMetadataTypeDefs(
|
private async generateMetadataTypeDefs(
|
||||||
dynamicObjectMetadataCollection: ObjectMetadataInterface[],
|
dynamicObjectMetadataCollection: ObjectMetadataEntity[],
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
) {
|
) {
|
||||||
this.logger.log(
|
this.logger.log(
|
||||||
@ -173,7 +173,7 @@ export class TypeDefinitionsGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private generateObjectTypeDefs(
|
private generateObjectTypeDefs(
|
||||||
objectMetadataCollection: ObjectMetadataInterface[] | CompositeType[],
|
objectMetadataCollection: ObjectMetadataEntity[] | CompositeType[],
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
) {
|
) {
|
||||||
const objectTypeDefs = objectMetadataCollection.map((objectMetadata) =>
|
const objectTypeDefs = objectMetadataCollection.map((objectMetadata) =>
|
||||||
@ -189,7 +189,7 @@ export class TypeDefinitionsGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private generatePaginationTypeDefs(
|
private generatePaginationTypeDefs(
|
||||||
objectMetadataCollection: ObjectMetadataInterface[],
|
objectMetadataCollection: ObjectMetadataEntity[],
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
) {
|
) {
|
||||||
const edgeTypeDefs = objectMetadataCollection.map((objectMetadata) =>
|
const edgeTypeDefs = objectMetadataCollection.map((objectMetadata) =>
|
||||||
@ -207,7 +207,7 @@ export class TypeDefinitionsGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async generateInputTypeDefs(
|
private async generateInputTypeDefs(
|
||||||
objectMetadataCollection: ObjectMetadataInterface[],
|
objectMetadataCollection: ObjectMetadataEntity[],
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
) {
|
) {
|
||||||
const inputTypeDefs = objectMetadataCollection
|
const inputTypeDefs = objectMetadataCollection
|
||||||
@ -253,7 +253,7 @@ export class TypeDefinitionsGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private generateEnumTypeDefs(
|
private generateEnumTypeDefs(
|
||||||
objectMetadataCollection: ObjectMetadataInterface[],
|
objectMetadataCollection: ObjectMetadataEntity[],
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
) {
|
) {
|
||||||
const enumTypeDefs = objectMetadataCollection
|
const enumTypeDefs = objectMetadataCollection
|
||||||
@ -266,7 +266,7 @@ export class TypeDefinitionsGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async generateExtendedObjectTypeDefs(
|
private async generateExtendedObjectTypeDefs(
|
||||||
objectMetadataCollection: ObjectMetadataInterface[],
|
objectMetadataCollection: ObjectMetadataEntity[],
|
||||||
options: WorkspaceBuildSchemaOptions,
|
options: WorkspaceBuildSchemaOptions,
|
||||||
) {
|
) {
|
||||||
// Generate extended object type defs only for objects that contain composite fields
|
// Generate extended object type defs only for objects that contain composite fields
|
||||||
@ -291,7 +291,7 @@ export class TypeDefinitionsGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private generateRelationConnectInputTypeDefs(
|
private generateRelationConnectInputTypeDefs(
|
||||||
objectMetadataCollection: ObjectMetadataInterface[],
|
objectMetadataCollection: ObjectMetadataEntity[],
|
||||||
) {
|
) {
|
||||||
const relationWhereInputTypeDefs = objectMetadataCollection
|
const relationWhereInputTypeDefs = objectMetadataCollection
|
||||||
.map((objectMetadata) =>
|
.map((objectMetadata) =>
|
||||||
|
|||||||
@ -7,8 +7,7 @@ import {
|
|||||||
import { FieldMetadataType } from 'twenty-shared/types';
|
import { FieldMetadataType } from 'twenty-shared/types';
|
||||||
import { isDefined } from 'twenty-shared/utils';
|
import { isDefined } from 'twenty-shared/utils';
|
||||||
|
|
||||||
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from 'src/engine/api/graphql/workspace-schema-builder/interfaces/workspace-build-schema-options.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
|
|
||||||
import { InputTypeDefinitionKind } from 'src/engine/api/graphql/workspace-schema-builder/factories/input-type-definition.factory';
|
import { InputTypeDefinitionKind } from 'src/engine/api/graphql/workspace-schema-builder/factories/input-type-definition.factory';
|
||||||
@ -16,6 +15,7 @@ import { ObjectTypeDefinitionKind } from 'src/engine/api/graphql/workspace-schem
|
|||||||
import { formatRelationConnectInputTarget } from 'src/engine/api/graphql/workspace-schema-builder/factories/relation-connect-input-type-definition.factory';
|
import { formatRelationConnectInputTarget } from 'src/engine/api/graphql/workspace-schema-builder/factories/relation-connect-input-type-definition.factory';
|
||||||
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
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 { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
import { isFieldMetadataEntityOfType } from 'src/engine/utils/is-field-metadata-of-type.util';
|
import { isFieldMetadataEntityOfType } from 'src/engine/utils/is-field-metadata-of-type.util';
|
||||||
|
|
||||||
type TypeFactory<T extends InputTypeDefinitionKind | ObjectTypeDefinitionKind> =
|
type TypeFactory<T extends InputTypeDefinitionKind | ObjectTypeDefinitionKind> =
|
||||||
@ -48,7 +48,7 @@ export const generateFields = <
|
|||||||
options,
|
options,
|
||||||
typeFactory,
|
typeFactory,
|
||||||
}: {
|
}: {
|
||||||
objectMetadata: ObjectMetadataInterface;
|
objectMetadata: ObjectMetadataEntity;
|
||||||
kind: T;
|
kind: T;
|
||||||
options: WorkspaceBuildSchemaOptions;
|
options: WorkspaceBuildSchemaOptions;
|
||||||
typeFactory: TypeFactory<T>;
|
typeFactory: TypeFactory<T>;
|
||||||
|
|||||||
@ -1,9 +1,8 @@
|
|||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
import { isRelationFieldMetadataType } from 'src/engine/utils/is-relation-field-metadata-type.util';
|
import { isRelationFieldMetadataType } from 'src/engine/utils/is-relation-field-metadata-type.util';
|
||||||
|
|
||||||
export const objectContainsRelationField = (
|
export const objectContainsRelationField = (
|
||||||
objectMetadata: ObjectMetadataInterface,
|
objectMetadata: ObjectMetadataEntity,
|
||||||
): boolean => {
|
): boolean => {
|
||||||
return objectMetadata.fields.some((field) =>
|
return objectMetadata.fields.some((field) =>
|
||||||
isRelationFieldMetadataType(field.type),
|
isRelationFieldMetadataType(field.type),
|
||||||
|
|||||||
@ -3,14 +3,15 @@ import { Injectable } from '@nestjs/common';
|
|||||||
import { GraphQLSchema } from 'graphql';
|
import { GraphQLSchema } from 'graphql';
|
||||||
|
|
||||||
import { WorkspaceResolverBuilderMethods } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
|
import { WorkspaceResolverBuilderMethods } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
import { TypeDefinitionsGenerator } from './type-definitions.generator';
|
import { TypeDefinitionsGenerator } from './type-definitions.generator';
|
||||||
|
|
||||||
import { MutationTypeFactory } from './factories/mutation-type.factory';
|
import { MutationTypeFactory } from './factories/mutation-type.factory';
|
||||||
import { OrphanedTypesFactory } from './factories/orphaned-types.factory';
|
import { OrphanedTypesFactory } from './factories/orphaned-types.factory';
|
||||||
import { QueryTypeFactory } from './factories/query-type.factory';
|
import { QueryTypeFactory } from './factories/query-type.factory';
|
||||||
import { WorkspaceBuildSchemaOptions } from './interfaces/workspace-build-schema-optionts.interface';
|
import { WorkspaceBuildSchemaOptions } from './interfaces/workspace-build-schema-options.interface';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class WorkspaceGraphQLSchemaFactory {
|
export class WorkspaceGraphQLSchemaFactory {
|
||||||
@ -22,7 +23,7 @@ export class WorkspaceGraphQLSchemaFactory {
|
|||||||
) {}
|
) {}
|
||||||
|
|
||||||
async create(
|
async create(
|
||||||
objectMetadataCollection: ObjectMetadataInterface[],
|
objectMetadataCollection: ObjectMetadataEntity[],
|
||||||
workspaceResolverBuilderMethods: WorkspaceResolverBuilderMethods,
|
workspaceResolverBuilderMethods: WorkspaceResolverBuilderMethods,
|
||||||
options: WorkspaceBuildSchemaOptions = {},
|
options: WorkspaceBuildSchemaOptions = {},
|
||||||
): Promise<GraphQLSchema> {
|
): Promise<GraphQLSchema> {
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import { ObjectRecordDiff } from 'src/engine/core-modules/event-emitter/types/object-record-diff';
|
import { ObjectRecordDiff } from 'src/engine/core-modules/event-emitter/types/object-record-diff';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
type Properties<T> = {
|
type Properties<T> = {
|
||||||
updatedFields?: string[];
|
updatedFields?: string[];
|
||||||
@ -13,6 +12,6 @@ export class ObjectRecordBaseEvent<T = object> {
|
|||||||
recordId: string;
|
recordId: string;
|
||||||
userId?: string;
|
userId?: string;
|
||||||
workspaceMemberId?: string;
|
workspaceMemberId?: string;
|
||||||
objectMetadata: Omit<ObjectMetadataInterface, 'indexMetadatas'>;
|
objectMetadata: Omit<ObjectMetadataEntity, 'indexMetadatas'>;
|
||||||
properties: Properties<T>;
|
properties: Properties<T>;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,9 +4,9 @@ import DataLoader from 'dataloader';
|
|||||||
import { APP_LOCALES } from 'twenty-shared/translations';
|
import { APP_LOCALES } from 'twenty-shared/translations';
|
||||||
import { isDefined } from 'twenty-shared/utils';
|
import { isDefined } from 'twenty-shared/utils';
|
||||||
|
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
import { IndexMetadataInterface } from 'src/engine/metadata-modules/index-metadata/interfaces/index-metadata.interface';
|
import { IndexMetadataInterface } from 'src/engine/metadata-modules/index-metadata/interfaces/index-metadata.interface';
|
||||||
|
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
import { IDataloaders } from 'src/engine/dataloaders/dataloader.interface';
|
import { IDataloaders } from 'src/engine/dataloaders/dataloader.interface';
|
||||||
import { filterMorphRelationDuplicateFieldsDTO } from 'src/engine/dataloaders/utils/filter-morph-relation-duplicate-fields.util';
|
import { filterMorphRelationDuplicateFieldsDTO } from 'src/engine/dataloaders/utils/filter-morph-relation-duplicate-fields.util';
|
||||||
import { FieldMetadataDTO } from 'src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto';
|
import { FieldMetadataDTO } from 'src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto';
|
||||||
@ -17,7 +17,6 @@ import { fromFieldMetadataEntityToFieldMetadataDto } from 'src/engine/metadata-m
|
|||||||
import { resolveFieldMetadataStandardOverride } from 'src/engine/metadata-modules/field-metadata/utils/resolve-field-metadata-standard-override.util';
|
import { resolveFieldMetadataStandardOverride } from 'src/engine/metadata-modules/field-metadata/utils/resolve-field-metadata-standard-override.util';
|
||||||
import { IndexFieldMetadataDTO } from 'src/engine/metadata-modules/index-metadata/dtos/index-field-metadata.dto';
|
import { IndexFieldMetadataDTO } from 'src/engine/metadata-modules/index-metadata/dtos/index-field-metadata.dto';
|
||||||
import { IndexMetadataDTO } from 'src/engine/metadata-modules/index-metadata/dtos/index-metadata.dto';
|
import { IndexMetadataDTO } from 'src/engine/metadata-modules/index-metadata/dtos/index-metadata.dto';
|
||||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
|
||||||
import { WorkspaceMetadataCacheService } from 'src/engine/metadata-modules/workspace-metadata-cache/services/workspace-metadata-cache.service';
|
import { WorkspaceMetadataCacheService } from 'src/engine/metadata-modules/workspace-metadata-cache/services/workspace-metadata-cache.service';
|
||||||
|
|
||||||
export type RelationMetadataLoaderPayload = {
|
export type RelationMetadataLoaderPayload = {
|
||||||
@ -52,18 +51,18 @@ export type MorphRelationLoaderPayload = {
|
|||||||
|
|
||||||
export type FieldMetadataLoaderPayload = {
|
export type FieldMetadataLoaderPayload = {
|
||||||
workspaceId: string;
|
workspaceId: string;
|
||||||
objectMetadata: Pick<ObjectMetadataInterface, 'id'>;
|
objectMetadata: Pick<ObjectMetadataEntity, 'id'>;
|
||||||
locale?: keyof typeof APP_LOCALES;
|
locale?: keyof typeof APP_LOCALES;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type IndexMetadataLoaderPayload = {
|
export type IndexMetadataLoaderPayload = {
|
||||||
workspaceId: string;
|
workspaceId: string;
|
||||||
objectMetadata: Pick<ObjectMetadataInterface, 'id'>;
|
objectMetadata: Pick<ObjectMetadataEntity, 'id'>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type IndexFieldMetadataLoaderPayload = {
|
export type IndexFieldMetadataLoaderPayload = {
|
||||||
workspaceId: string;
|
workspaceId: string;
|
||||||
objectMetadata: Pick<ObjectMetadataInterface, 'id'>;
|
objectMetadata: Pick<ObjectMetadataEntity, 'id'>;
|
||||||
indexMetadata: Pick<IndexMetadataInterface, 'id'>;
|
indexMetadata: Pick<IndexMetadataInterface, 'id'>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
|
||||||
|
|
||||||
export interface ObjectMetadataInterface extends ObjectMetadataEntity {}
|
|
||||||
@ -1,12 +1,11 @@
|
|||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
ObjectMetadataException,
|
ObjectMetadataException,
|
||||||
ObjectMetadataExceptionCode,
|
ObjectMetadataExceptionCode,
|
||||||
} from 'src/engine/metadata-modules/object-metadata/object-metadata.exception';
|
} from 'src/engine/metadata-modules/object-metadata/object-metadata.exception';
|
||||||
|
|
||||||
export const assertMutationNotOnRemoteObject = (
|
export const assertMutationNotOnRemoteObject = (
|
||||||
objectMetadataItem: Pick<ObjectMetadataInterface, 'isRemote'>,
|
objectMetadataItem: Pick<ObjectMetadataEntity, 'isRemote'>,
|
||||||
) => {
|
) => {
|
||||||
if (objectMetadataItem.isRemote) {
|
if (objectMetadataItem.isRemote) {
|
||||||
throw new ObjectMetadataException(
|
throw new ObjectMetadataException(
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
import { IndexMetadataInterface } from 'src/engine/metadata-modules/index-metadata/interfaces/index-metadata.interface';
|
import { IndexMetadataInterface } from 'src/engine/metadata-modules/index-metadata/interfaces/index-metadata.interface';
|
||||||
|
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
import { FieldMetadataMap } from 'src/engine/metadata-modules/types/field-metadata-map';
|
import { FieldMetadataMap } from 'src/engine/metadata-modules/types/field-metadata-map';
|
||||||
|
|
||||||
export type ObjectMetadataItemWithFieldMaps = Omit<
|
export type ObjectMetadataItemWithFieldMaps = Omit<
|
||||||
ObjectMetadataInterface,
|
ObjectMetadataEntity,
|
||||||
'fields'
|
'fields'
|
||||||
> & {
|
> & {
|
||||||
fieldsById: FieldMetadataMap;
|
fieldsById: FieldMetadataMap;
|
||||||
|
|||||||
@ -1,15 +1,14 @@
|
|||||||
import omit from 'lodash.omit';
|
import omit from 'lodash.omit';
|
||||||
import { FieldMetadataType } from 'twenty-shared/types';
|
import { FieldMetadataType } from 'twenty-shared/types';
|
||||||
|
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
import { FieldMetadataMap } from 'src/engine/metadata-modules/types/field-metadata-map';
|
import { FieldMetadataMap } from 'src/engine/metadata-modules/types/field-metadata-map';
|
||||||
import { ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-maps';
|
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';
|
import { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-metadata-maps';
|
||||||
import { isFieldMetadataEntityOfType } from 'src/engine/utils/is-field-metadata-of-type.util';
|
import { isFieldMetadataEntityOfType } from 'src/engine/utils/is-field-metadata-of-type.util';
|
||||||
|
|
||||||
export const generateObjectMetadataMaps = (
|
export const generateObjectMetadataMaps = (
|
||||||
objectMetadataCollection: ObjectMetadataInterface[],
|
objectMetadataCollection: ObjectMetadataEntity[],
|
||||||
): ObjectMetadataMaps => {
|
): ObjectMetadataMaps => {
|
||||||
const objectMetadataMaps: ObjectMetadataMaps = {
|
const objectMetadataMaps: ObjectMetadataMaps = {
|
||||||
byId: {},
|
byId: {},
|
||||||
|
|||||||
@ -1,12 +1,11 @@
|
|||||||
import omit from 'lodash.omit';
|
import omit from 'lodash.omit';
|
||||||
|
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
import { ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-maps';
|
import { ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-maps';
|
||||||
|
|
||||||
export const getObjectMetadataFromObjectMetadataItemWithFieldMaps = (
|
export const getObjectMetadataFromObjectMetadataItemWithFieldMaps = (
|
||||||
objectMetadataMapItem: ObjectMetadataItemWithFieldMaps,
|
objectMetadataMapItem: ObjectMetadataItemWithFieldMaps,
|
||||||
): ObjectMetadataInterface => {
|
): ObjectMetadataEntity => {
|
||||||
return {
|
return {
|
||||||
...omit(objectMetadataMapItem, [
|
...omit(objectMetadataMapItem, [
|
||||||
'fieldsById',
|
'fieldsById',
|
||||||
|
|||||||
@ -4,11 +4,11 @@ import { FieldMetadataType } from 'twenty-shared/types';
|
|||||||
import { isDefined } from 'twenty-shared/utils';
|
import { isDefined } from 'twenty-shared/utils';
|
||||||
|
|
||||||
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
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 { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field-metadata/utils/is-composite-field-metadata-type.util';
|
||||||
import { getUniqueConstraintsFields } from 'src/engine/metadata-modules/index-metadata/utils/getUniqueConstraintsFields.util';
|
import { getUniqueConstraintsFields } from 'src/engine/metadata-modules/index-metadata/utils/getUniqueConstraintsFields.util';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
import { ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-maps';
|
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';
|
import { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-metadata-maps';
|
||||||
import { ConnectObject } from 'src/engine/twenty-orm/entity-manager/types/query-deep-partial-entity-with-relation-connect.type';
|
import { ConnectObject } from 'src/engine/twenty-orm/entity-manager/types/query-deep-partial-entity-with-relation-connect.type';
|
||||||
@ -241,7 +241,7 @@ const checkUniqueConstraintFullyPopulated = (
|
|||||||
) => {
|
) => {
|
||||||
const uniqueConstraintsFields = getUniqueConstraintsFields<
|
const uniqueConstraintsFields = getUniqueConstraintsFields<
|
||||||
FieldMetadataEntity,
|
FieldMetadataEntity,
|
||||||
ObjectMetadataInterface
|
ObjectMetadataEntity
|
||||||
>({
|
>({
|
||||||
...objectMetadata,
|
...objectMetadata,
|
||||||
fields: Object.values(objectMetadata.fieldsById),
|
fields: Object.values(objectMetadata.fieldsById),
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
import { computeTableName } from './compute-table-name.util';
|
import { computeTableName } from './compute-table-name.util';
|
||||||
|
|
||||||
export const computeObjectTargetTable = (
|
export const computeObjectTargetTable = (
|
||||||
objectMetadata: Pick<ObjectMetadataInterface, 'nameSingular' | 'isCustom'>,
|
objectMetadata: Pick<ObjectMetadataEntity, 'nameSingular' | 'isCustom'>,
|
||||||
) => {
|
) => {
|
||||||
return computeTableName(objectMetadata.nameSingular, objectMetadata.isCustom);
|
return computeTableName(objectMetadata.nameSingular, objectMetadata.isCustom);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
import { WorkspaceResolverBuilderMethodNames } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
|
import { WorkspaceResolverBuilderMethodNames } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
|
||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
import { camelCase } from 'src/utils/camel-case';
|
import { camelCase } from 'src/utils/camel-case';
|
||||||
import { pascalCase } from 'src/utils/pascal-case';
|
import { pascalCase } from 'src/utils/pascal-case';
|
||||||
|
|
||||||
export const getResolverName = (
|
export const getResolverName = (
|
||||||
objectMetadata: Pick<ObjectMetadataInterface, 'namePlural' | 'nameSingular'>,
|
objectMetadata: Pick<ObjectMetadataEntity, 'namePlural' | 'nameSingular'>,
|
||||||
type: WorkspaceResolverBuilderMethodNames,
|
type: WorkspaceResolverBuilderMethodNames,
|
||||||
) => {
|
) => {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
|||||||
@ -1,12 +1,13 @@
|
|||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
import {
|
import {
|
||||||
ComputedPartialFieldMetadata,
|
ComputedPartialFieldMetadata,
|
||||||
PartialComputedFieldMetadata,
|
PartialComputedFieldMetadata,
|
||||||
PartialFieldMetadata,
|
PartialFieldMetadata,
|
||||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface';
|
} from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface';
|
||||||
|
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
export type PartialWorkspaceEntity = Pick<
|
export type PartialWorkspaceEntity = Pick<
|
||||||
ObjectMetadataInterface,
|
ObjectMetadataEntity,
|
||||||
| 'workspaceId'
|
| 'workspaceId'
|
||||||
| 'nameSingular'
|
| 'nameSingular'
|
||||||
| 'namePlural'
|
| 'namePlural'
|
||||||
|
|||||||
@ -1,10 +1,9 @@
|
|||||||
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
|
|
||||||
|
|
||||||
import { ObjectRecordEvent } from 'src/engine/core-modules/event-emitter/types/object-record-event.event';
|
import { ObjectRecordEvent } from 'src/engine/core-modules/event-emitter/types/object-record-event.event';
|
||||||
|
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||||
|
|
||||||
export type ObjectRecordEventForWebhook = Omit<
|
export type ObjectRecordEventForWebhook = Omit<
|
||||||
ObjectRecordEvent,
|
ObjectRecordEvent,
|
||||||
'objectMetadata'
|
'objectMetadata'
|
||||||
> & {
|
> & {
|
||||||
objectMetadata: Pick<ObjectMetadataInterface, 'id' | 'nameSingular'>;
|
objectMetadata: Pick<ObjectMetadataEntity, 'id' | 'nameSingular'>;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user