diff --git a/front/src/generated-metadata/gql.ts b/front/src/generated-metadata/gql.ts index 98ea430fd..31924ae6c 100644 --- a/front/src/generated-metadata/gql.ts +++ b/front/src/generated-metadata/gql.ts @@ -19,7 +19,7 @@ const documents = { "\n mutation UpdateOneObjectMetadataItem(\n $idToUpdate: ID!\n $updatePayload: UpdateObjectInput!\n ) {\n updateOneObject(input: { id: $idToUpdate, update: $updatePayload }) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n": types.UpdateOneObjectMetadataItemDocument, "\n mutation DeleteOneObjectMetadataItem($idToDelete: ID!) {\n deleteOneObject(input: { id: $idToDelete }) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n": types.DeleteOneObjectMetadataItemDocument, "\n mutation DeleteOneFieldMetadataItem($idToDelete: ID!) {\n deleteOneField(input: { id: $idToDelete }) {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n": types.DeleteOneFieldMetadataItemDocument, - "\n query ObjectMetadataItems {\n objects(paging: { first: 1000 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 1000 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n": types.ObjectMetadataItemsDocument, + "\n query ObjectMetadataItems {\n objects(paging: { first: 1000 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 1000 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n fromRelationMetadata {\n id\n relationType\n }\n toRelationMetadata {\n id\n relationType\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n": types.ObjectMetadataItemsDocument, }; /** @@ -63,7 +63,7 @@ export function graphql(source: "\n mutation DeleteOneFieldMetadataItem($idToDe /** * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ -export function graphql(source: "\n query ObjectMetadataItems {\n objects(paging: { first: 1000 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 1000 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n"): (typeof documents)["\n query ObjectMetadataItems {\n objects(paging: { first: 1000 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 1000 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n"]; +export function graphql(source: "\n query ObjectMetadataItems {\n objects(paging: { first: 1000 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 1000 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n fromRelationMetadata {\n id\n relationType\n }\n toRelationMetadata {\n id\n relationType\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n"): (typeof documents)["\n query ObjectMetadataItems {\n objects(paging: { first: 1000 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 1000 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n fromRelationMetadata {\n id\n relationType\n }\n toRelationMetadata {\n id\n relationType\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n"]; export function graphql(source: string) { return (documents as any)[source] ?? {}; diff --git a/front/src/generated-metadata/graphql.ts b/front/src/generated-metadata/graphql.ts index f06f828f3..0759cc21a 100644 --- a/front/src/generated-metadata/graphql.ts +++ b/front/src/generated-metadata/graphql.ts @@ -634,6 +634,7 @@ export type Query = { object: Object; objects: ObjectConnection; relation: Relation; + relations: RelationConnection; }; @@ -661,6 +662,21 @@ export type QueryRelationArgs = { id: Scalars['ID']['input']; }; + +export type QueryRelationsArgs = { + paging?: CursorPaging; +}; + +export type RelationConnection = { + __typename?: 'RelationConnection'; + /** Array of edges. */ + edges: Array; + /** Paging information */ + pageInfo: PageInfo; + /** Fetch total count of records */ + totalCount: Scalars['Int']['output']; +}; + export type Support = { __typename?: 'Support'; supportDriver: Scalars['String']['output']; @@ -919,7 +935,7 @@ export type DeleteOneFieldMetadataItemMutation = { __typename?: 'Mutation', dele export type ObjectMetadataItemsQueryVariables = Exact<{ [key: string]: never; }>; -export type ObjectMetadataItemsQuery = { __typename?: 'Query', objects: { __typename?: 'ObjectConnection', totalCount: number, edges: Array<{ __typename?: 'objectEdge', node: { __typename?: 'object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, createdAt: any, updatedAt: any, fields: { __typename?: 'ObjectFieldsConnection', totalCount: number, edges: Array<{ __typename?: 'fieldEdge', node: { __typename?: 'field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, placeholder?: string | null, isCustom: boolean, isActive: boolean, isNullable: boolean, createdAt: any, updatedAt: any } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } }; +export type ObjectMetadataItemsQuery = { __typename?: 'Query', objects: { __typename?: 'ObjectConnection', totalCount: number, edges: Array<{ __typename?: 'objectEdge', node: { __typename?: 'object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, createdAt: any, updatedAt: any, fields: { __typename?: 'ObjectFieldsConnection', totalCount: number, edges: Array<{ __typename?: 'fieldEdge', node: { __typename?: 'field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, placeholder?: string | null, isCustom: boolean, isActive: boolean, isNullable: boolean, createdAt: any, updatedAt: any, fromRelationMetadata?: { __typename?: 'relation', id: string, relationType: string } | null, toRelationMetadata?: { __typename?: 'relation', id: string, relationType: string } | null } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } }; export const CreateOneObjectMetadataItemDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateOneObjectMetadataItem"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateOneObjectInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createOneObject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode; @@ -928,4 +944,4 @@ export const UpdateOneFieldMetadataItemDocument = {"kind":"Document","definition export const UpdateOneObjectMetadataItemDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateOneObjectMetadataItem"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"idToUpdate"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"updatePayload"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateObjectInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateOneObject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"idToUpdate"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"update"},"value":{"kind":"Variable","name":{"kind":"Name","value":"updatePayload"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode; export const DeleteOneObjectMetadataItemDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteOneObjectMetadataItem"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteOneObject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode; export const DeleteOneFieldMetadataItemDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteOneFieldMetadataItem"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteOneField"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode; -export const ObjectMetadataItemsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ObjectMetadataItems"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"objects"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"paging"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"fields"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"paging"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]} as unknown as DocumentNode; \ No newline at end of file +export const ObjectMetadataItemsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ObjectMetadataItems"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"objects"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"paging"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"fields"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"paging"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"fromRelationMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"relationType"}}]}},{"kind":"Field","name":{"kind":"Name","value":"toRelationMetadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"relationType"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]} as unknown as DocumentNode; \ No newline at end of file diff --git a/front/src/modules/object-metadata/graphql/queries.ts b/front/src/modules/object-metadata/graphql/queries.ts index 204497d55..2b9855d63 100644 --- a/front/src/modules/object-metadata/graphql/queries.ts +++ b/front/src/modules/object-metadata/graphql/queries.ts @@ -32,6 +32,14 @@ export const FIND_MANY_METADATA_OBJECTS = gql` isNullable createdAt updatedAt + fromRelationMetadata { + id + relationType + } + toRelationMetadata { + id + relationType + } } } pageInfo { diff --git a/front/src/modules/object-metadata/hooks/useFieldMetadataItem.ts b/front/src/modules/object-metadata/hooks/useFieldMetadataItem.ts index 2f067523f..19f0b3336 100644 --- a/front/src/modules/object-metadata/hooks/useFieldMetadataItem.ts +++ b/front/src/modules/object-metadata/hooks/useFieldMetadataItem.ts @@ -1,6 +1,7 @@ import { MetadataFieldDataType } from '@/settings/data-model/types/ObjectFieldDataType'; import { Field } from '~/generated/graphql'; +import { FieldMetadataItem } from '../types/FieldMetadataItem'; import { formatFieldMetadataItemInput } from '../utils/formatFieldMetadataItemInput'; import { useCreateOneFieldMetadataItem } from './useCreateOneFieldMetadataItem'; @@ -32,19 +33,19 @@ export const useFieldMetadataItem = () => { updatePayload: formatFieldMetadataItemInput(input), }); - const activateMetadataField = (metadataField: Field) => + const activateMetadataField = (metadataField: FieldMetadataItem) => updateOneFieldMetadataItem({ fieldMetadataIdToUpdate: metadataField.id, updatePayload: { isActive: true }, }); - const disableMetadataField = (metadataField: Field) => + const disableMetadataField = (metadataField: FieldMetadataItem) => updateOneFieldMetadataItem({ fieldMetadataIdToUpdate: metadataField.id, updatePayload: { isActive: false }, }); - const eraseMetadataField = (metadataField: Field) => + const eraseMetadataField = (metadataField: FieldMetadataItem) => deleteOneFieldMetadataItem(metadataField.id); return { diff --git a/front/src/modules/object-metadata/types/FieldMetadataItem.ts b/front/src/modules/object-metadata/types/FieldMetadataItem.ts new file mode 100644 index 000000000..ccc279c54 --- /dev/null +++ b/front/src/modules/object-metadata/types/FieldMetadataItem.ts @@ -0,0 +1,9 @@ +import { Field, Relation } from '~/generated-metadata/graphql'; + +export type FieldMetadataItem = Omit< + Field, + 'fromRelationMetadata' | 'toRelationMetadata' +> & { + fromRelationMetadata?: Pick | null; + toRelationMetadata?: Pick | null; +}; diff --git a/front/src/modules/object-metadata/types/ObjectMetadataItem.ts b/front/src/modules/object-metadata/types/ObjectMetadataItem.ts index ff423033e..9f66632c8 100644 --- a/front/src/modules/object-metadata/types/ObjectMetadataItem.ts +++ b/front/src/modules/object-metadata/types/ObjectMetadataItem.ts @@ -1,8 +1,10 @@ -import { Field, Object as GeneratedObject } from '~/generated-metadata/graphql'; +import { Object as GeneratedObject } from '~/generated-metadata/graphql'; + +import { FieldMetadataItem } from './FieldMetadataItem'; export type ObjectMetadataItem = Omit< GeneratedObject, 'fields' | 'dataSourceId' > & { - fields: Field[]; + fields: FieldMetadataItem[]; }; diff --git a/front/src/modules/object-metadata/utils/formatFieldMetadataItemAsColumnDefinition.ts b/front/src/modules/object-metadata/utils/formatFieldMetadataItemAsColumnDefinition.ts index 32009229f..2f605fd82 100644 --- a/front/src/modules/object-metadata/utils/formatFieldMetadataItemAsColumnDefinition.ts +++ b/front/src/modules/object-metadata/utils/formatFieldMetadataItemAsColumnDefinition.ts @@ -1,8 +1,8 @@ import { IconComponent } from '@/ui/display/icon/types/IconComponent'; import { FieldMetadata } from '@/ui/object/field/types/FieldMetadata'; import { ColumnDefinition } from '@/ui/object/record-table/types/ColumnDefinition'; -import { Field } from '~/generated-metadata/graphql'; +import { FieldMetadataItem } from '../types/FieldMetadataItem'; import { ObjectMetadataItem } from '../types/ObjectMetadataItem'; import { parseFieldType } from './parseFieldType'; @@ -14,7 +14,7 @@ export const formatFieldMetadataItemAsColumnDefinition = ({ icons, }: { position: number; - field: Field; + field: FieldMetadataItem; objectMetadataItem: Omit; icons: Record; }): ColumnDefinition => ({ diff --git a/front/src/modules/object-metadata/utils/mapFieldMetadataToGraphQLQuery.ts b/front/src/modules/object-metadata/utils/mapFieldMetadataToGraphQLQuery.ts index e8eddf449..2e26d39c9 100644 --- a/front/src/modules/object-metadata/utils/mapFieldMetadataToGraphQLQuery.ts +++ b/front/src/modules/object-metadata/utils/mapFieldMetadataToGraphQLQuery.ts @@ -1,7 +1,8 @@ import { FieldType } from '@/ui/object/field/types/FieldType'; -import { Field } from '~/generated/graphql'; -export const mapFieldMetadataToGraphQLQuery = (field: Field) => { +import { FieldMetadataItem } from '../types/FieldMetadataItem'; + +export const mapFieldMetadataToGraphQLQuery = (field: FieldMetadataItem) => { // TODO: parse const fieldType = field.type as FieldType; @@ -24,6 +25,26 @@ export const mapFieldMetadataToGraphQLQuery = (field: Field) => { if (fieldIsSimpleValue) { return field.name; + } else if ( + fieldType === 'RELATION' && + field.toRelationMetadata?.relationType === 'ONE_TO_MANY' + ) { + return `${field.name} + { + id + }`; + } else if ( + fieldType === 'RELATION' && + field.fromRelationMetadata?.relationType === 'ONE_TO_MANY' + ) { + return `${field.name} + { + edges { + node { + id + } + } + }`; } else if (fieldIsURL) { return ` ${field.name} diff --git a/front/src/modules/settings/data-model/object-details/components/SettingsObjectFieldItemTableRow.tsx b/front/src/modules/settings/data-model/object-details/components/SettingsObjectFieldItemTableRow.tsx index b94748e71..3d612b06f 100644 --- a/front/src/modules/settings/data-model/object-details/components/SettingsObjectFieldItemTableRow.tsx +++ b/front/src/modules/settings/data-model/object-details/components/SettingsObjectFieldItemTableRow.tsx @@ -2,10 +2,10 @@ import { ReactNode } from 'react'; import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; +import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { useLazyLoadIcon } from '@/ui/input/hooks/useLazyLoadIcon'; import { TableCell } from '@/ui/layout/table/components/TableCell'; import { TableRow } from '@/ui/layout/table/components/TableRow'; -import { Field } from '~/generated-metadata/graphql'; import { dataTypes } from '../../constants/dataTypes'; import { MetadataFieldDataType } from '../../types/ObjectFieldDataType'; @@ -14,7 +14,7 @@ import { SettingsObjectFieldDataType } from './SettingsObjectFieldDataType'; type SettingsObjectFieldItemTableRowProps = { ActionIcon: ReactNode; - fieldItem: Field; + fieldItem: FieldMetadataItem; }; export const StyledObjectFieldTableRow = styled(TableRow)` diff --git a/front/src/modules/views/components/ViewBarEffect.tsx b/front/src/modules/views/components/ViewBarEffect.tsx index c0980a72b..427714910 100644 --- a/front/src/modules/views/components/ViewBarEffect.tsx +++ b/front/src/modules/views/components/ViewBarEffect.tsx @@ -67,7 +67,7 @@ export const ViewBarEffect = () => { useFindManyObjectRecords({ skip: !currentViewId, objectNamePlural: 'viewFieldsV2', - filter: { viewId: { eq: currentViewId } }, + filter: { view: { eq: currentViewId } }, onCompleted: useRecoilCallback( ({ snapshot, set }) => async (data: PaginatedObjectTypeResults) => { diff --git a/front/src/modules/views/hooks/internal/useViewFields.ts b/front/src/modules/views/hooks/internal/useViewFields.ts index cc300042d..8e4ac50f1 100644 --- a/front/src/modules/views/hooks/internal/useViewFields.ts +++ b/front/src/modules/views/hooks/internal/useViewFields.ts @@ -41,7 +41,7 @@ export const useViewFields = (viewScopeId: string) => { variables: { input: { fieldMetadataId: viewField.fieldMetadataId, - viewId: viewIdToPersist, + view: viewIdToPersist, isVisible: viewField.isVisible, size: viewField.size, position: viewField.position, diff --git a/front/src/modules/views/utils/mapViewFieldsToBoardFieldDefinitions.ts b/front/src/modules/views/utils/mapViewFieldsToBoardFieldDefinitions.ts index 6ee3e5975..be4f29909 100644 --- a/front/src/modules/views/utils/mapViewFieldsToBoardFieldDefinitions.ts +++ b/front/src/modules/views/utils/mapViewFieldsToBoardFieldDefinitions.ts @@ -27,7 +27,7 @@ export const mapViewFieldsToBoardFieldDefinitions = ( type: correspondingFieldMetadata.type, position: viewField.position, isVisible: viewField.isVisible, - viewFieldMetadataId: viewField.id, + viewFieldId: viewField.id, } : null; }) diff --git a/front/src/modules/views/utils/mapViewFieldsToColumnDefinitions.ts b/front/src/modules/views/utils/mapViewFieldsToColumnDefinitions.ts index 7337b955f..d3119a6ee 100644 --- a/front/src/modules/views/utils/mapViewFieldsToColumnDefinitions.ts +++ b/front/src/modules/views/utils/mapViewFieldsToColumnDefinitions.ts @@ -28,7 +28,7 @@ export const mapViewFieldsToColumnDefinitions = ( position: viewField.position, size: viewField.size ?? correspondingFieldMetadata.size, isVisible: viewField.isVisible, - viewFieldMetadataId: viewField.id, + viewFieldId: viewField.id, } : null; }) diff --git a/front/src/testing/graphqlMocks.ts b/front/src/testing/graphqlMocks.ts index 09ddd6cdd..d963f1e0f 100644 --- a/front/src/testing/graphqlMocks.ts +++ b/front/src/testing/graphqlMocks.ts @@ -345,7 +345,7 @@ export const graphqlMocks = [ ); }), graphql.query('FindManyViewFieldsV2', (req, res, ctx) => { - const viewId = req.variables.filter.viewId.eq; + const viewId = req.variables.filter.view.eq; return res( ctx.data({ diff --git a/front/src/testing/mock-data/metadata.ts b/front/src/testing/mock-data/metadata.ts index 36c1e132b..8bb13802f 100644 --- a/front/src/testing/mock-data/metadata.ts +++ b/front/src/testing/mock-data/metadata.ts @@ -30,6 +30,8 @@ export const mockedObjectMetadataItems = { isNullable: false, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, { @@ -46,6 +48,8 @@ export const mockedObjectMetadataItems = { isNullable: false, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, { @@ -62,6 +66,8 @@ export const mockedObjectMetadataItems = { isNullable: false, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, ], @@ -105,6 +111,8 @@ export const mockedObjectMetadataItems = { isNullable: false, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, { @@ -121,6 +129,8 @@ export const mockedObjectMetadataItems = { isNullable: false, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, { @@ -137,6 +147,8 @@ export const mockedObjectMetadataItems = { isNullable: false, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, { @@ -153,6 +165,8 @@ export const mockedObjectMetadataItems = { isNullable: false, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, { @@ -169,6 +183,8 @@ export const mockedObjectMetadataItems = { isNullable: false, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, ], @@ -212,6 +228,8 @@ export const mockedObjectMetadataItems = { isNullable: false, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, { @@ -229,6 +247,8 @@ export const mockedObjectMetadataItems = { isNullable: true, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, { @@ -246,6 +266,8 @@ export const mockedObjectMetadataItems = { isNullable: true, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, { @@ -262,6 +284,8 @@ export const mockedObjectMetadataItems = { isNullable: true, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, { @@ -278,6 +302,8 @@ export const mockedObjectMetadataItems = { isNullable: true, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, { @@ -294,6 +320,8 @@ export const mockedObjectMetadataItems = { isNullable: true, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, ], @@ -337,6 +365,8 @@ export const mockedObjectMetadataItems = { isNullable: true, createdAt: '', updatedAt: '', + fromRelationMetadata: null, + toRelationMetadata: null, }, }, ], diff --git a/server/src/database/commands/data-seed-tenant.command.ts b/server/src/database/commands/data-seed-tenant.command.ts index 4b5d6314d..f29ae4815 100644 --- a/server/src/database/commands/data-seed-tenant.command.ts +++ b/server/src/database/commands/data-seed-tenant.command.ts @@ -9,9 +9,14 @@ import { TenantMigrationRunnerService } from 'src/tenant-migration-runner/tenant import { seedCompanies } from 'src/database/typeorm-seeds/tenant/companies'; import { seedViewFields } from 'src/database/typeorm-seeds/tenant/view-fields'; import { seedViews } from 'src/database/typeorm-seeds/tenant/views'; -import { seedFieldMetadata } from 'src/database/typeorm-seeds/metadata/field-metadata'; import { seedObjectMetadata } from 'src/database/typeorm-seeds/metadata/object-metadata'; import { TypeORMService } from 'src/database/typeorm/typeorm.service'; +import { seedCompanyFieldMetadata } from 'src/database/typeorm-seeds/metadata/field-metadata/company'; +import { seedViewFieldMetadata } from 'src/database/typeorm-seeds/metadata/field-metadata/view'; +import { seedViewFieldFieldMetadata } from 'src/database/typeorm-seeds/metadata/field-metadata/viewField'; +import { seedViewFilterFieldMetadata } from 'src/database/typeorm-seeds/metadata/field-metadata/viewFilter'; +import { seedViewSortFieldMetadata } from 'src/database/typeorm-seeds/metadata/field-metadata/viewSort'; +import { seedViewRelationMetadata } from 'src/database/typeorm-seeds/metadata/relation-metadata/view'; // TODO: implement dry-run @Command({ @@ -47,19 +52,30 @@ export class DataSeedTenantCommand extends CommandRunner { throw new Error('Could not connect to workspace data source'); } - await seedObjectMetadata(this.metadataDataSource, 'metadata'); - await seedFieldMetadata(this.metadataDataSource, 'metadata'); + try { + await seedObjectMetadata(this.metadataDataSource, 'metadata'); - await this.tenantMigrationService.insertStandardMigrations( - this.workspaceId, - ); - await this.migrationRunnerService.executeMigrationFromPendingMigrations( - this.workspaceId, - ); + await seedCompanyFieldMetadata(this.metadataDataSource, 'metadata'); + await seedViewFieldMetadata(this.metadataDataSource, 'metadata'); + await seedViewFieldFieldMetadata(this.metadataDataSource, 'metadata'); + await seedViewSortFieldMetadata(this.metadataDataSource, 'metadata'); + await seedViewFilterFieldMetadata(this.metadataDataSource, 'metadata'); - await seedCompanies(workspaceDataSource, dataSourceMetadata.schema); - await seedViewFields(workspaceDataSource, dataSourceMetadata.schema); - await seedViews(workspaceDataSource, dataSourceMetadata.schema); + await seedViewRelationMetadata(this.metadataDataSource, 'metadata'); + + await this.tenantMigrationService.insertStandardMigrations( + this.workspaceId, + ); + await this.migrationRunnerService.executeMigrationFromPendingMigrations( + this.workspaceId, + ); + + await seedCompanies(workspaceDataSource, dataSourceMetadata.schema); + await seedViews(workspaceDataSource, dataSourceMetadata.schema); + await seedViewFields(workspaceDataSource, dataSourceMetadata.schema); + } catch (error) { + console.error(error); + } await this.typeORMService.disconnectFromDataSource(dataSourceMetadata.id); } diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata.ts b/server/src/database/typeorm-seeds/metadata/field-metadata.ts deleted file mode 100644 index fa6ca97d4..000000000 --- a/server/src/database/typeorm-seeds/metadata/field-metadata.ts +++ /dev/null @@ -1,334 +0,0 @@ -import { DataSource } from 'typeorm'; - -const tableName = 'fieldMetadata'; - -export const seedFieldMetadata = async ( - workspaceDataSource: DataSource, - schemaName: string, -) => { - await workspaceDataSource - .createQueryBuilder() - .insert() - .into(`${schemaName}.${tableName}`, [ - 'objectMetadataId', - 'isCustom', - 'workspaceId', - 'isActive', - 'type', - 'name', - 'label', - 'targetColumnMap', - 'description', - 'icon', - 'isNullable', - ]) - .orIgnore() - .values([ - // Companies - { - objectMetadataId: '1a8487a0-480c-434e-b4c7-e22408b97047', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'name', - label: 'Name', - targetColumnMap: { - value: 'name', - }, - description: 'Name of the company', - icon: 'IconBuildingSkyscraper', - isNullable: false, - }, - { - objectMetadataId: '1a8487a0-480c-434e-b4c7-e22408b97047', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'domainName', - label: 'Domain Name', - targetColumnMap: { - value: 'domainName', - }, - description: 'Domain name of the company', - icon: 'IconLink', - isNullable: true, - }, - { - objectMetadataId: '1a8487a0-480c-434e-b4c7-e22408b97047', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'address', - label: 'Address', - targetColumnMap: { - value: 'address', - }, - description: 'Address of the company', - icon: 'IconMap', - isNullable: true, - }, - { - objectMetadataId: '1a8487a0-480c-434e-b4c7-e22408b97047', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'employees', - label: 'Employees', - targetColumnMap: { - value: 'employees', - }, - description: 'Number of employees', - icon: 'IconUsers', - isNullable: true, - }, - // Views - { - objectMetadataId: '9ab6b3dc-767f-473f-8fd0-6cdbefbf8dbe', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'name', - label: 'Name', - targetColumnMap: { - value: 'name', - }, - description: 'View name', - icon: null, - isNullable: false, - }, - { - objectMetadataId: '9ab6b3dc-767f-473f-8fd0-6cdbefbf8dbe', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'objectMetadataId', - label: 'Object Metadata Id', - targetColumnMap: { - value: 'objectMetadataId', - }, - description: 'View target object', - icon: null, - isNullable: false, - }, - { - objectMetadataId: '9ab6b3dc-767f-473f-8fd0-6cdbefbf8dbe', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'type', - label: 'Type', - targetColumnMap: { - value: 'type', - }, - description: 'View type', - icon: null, - isNullable: false, - }, - // View Fields - { - objectMetadataId: '61d9000b-485c-4c48-a22e-0d9a164f9647', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'fieldMetadataId', - label: 'Field Metadata Id', - targetColumnMap: { - value: 'fieldMetadataId', - }, - description: 'View Field target field', - icon: null, - isNullable: false, - }, - { - objectMetadataId: '61d9000b-485c-4c48-a22e-0d9a164f9647', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'viewId', - label: 'View Id', - targetColumnMap: { - value: 'viewId', - }, - description: 'View Field related view', - icon: null, - isNullable: false, - }, - { - objectMetadataId: '61d9000b-485c-4c48-a22e-0d9a164f9647', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'BOOLEAN', - name: 'isVisible', - label: 'Visible', - targetColumnMap: { - value: 'isVisible', - }, - description: 'View Field visibility', - icon: null, - isNullable: false, - }, - { - objectMetadataId: '61d9000b-485c-4c48-a22e-0d9a164f9647', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'NUMBER', - name: 'size', - label: 'Size', - targetColumnMap: { - value: 'size', - }, - description: 'View Field size', - icon: null, - isNullable: false, - }, - { - objectMetadataId: '61d9000b-485c-4c48-a22e-0d9a164f9647', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'NUMBER', - name: 'position', - label: 'Position', - targetColumnMap: { - value: 'position', - }, - description: 'View Field position', - icon: null, - isNullable: false, - }, - // View Filters - { - objectMetadataId: '5d9b1ab9-4461-4e2d-bf9e-9b47e68846d3', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'fieldMetadataId', - label: 'Field Metadata Id', - targetColumnMap: { - value: 'fieldMetadataId', - }, - description: 'View Filter target field', - icon: null, - isNullable: false, - }, - { - objectMetadataId: '5d9b1ab9-4461-4e2d-bf9e-9b47e68846d3', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'viewId', - label: 'View Id', - targetColumnMap: { - value: 'viewId', - }, - description: 'View Filter related view', - icon: null, - isNullable: false, - }, - { - objectMetadataId: '5d9b1ab9-4461-4e2d-bf9e-9b47e68846d3', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'operand', - label: 'Operand', - targetColumnMap: { - value: 'operand', - }, - description: 'View Filter operand', - icon: null, - isNullable: false, - }, - { - objectMetadataId: '5d9b1ab9-4461-4e2d-bf9e-9b47e68846d3', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'value', - label: 'Value', - targetColumnMap: { - value: 'value', - }, - description: 'View Filter value', - icon: null, - isNullable: false, - }, - { - objectMetadataId: '5d9b1ab9-4461-4e2d-bf9e-9b47e68846d3', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'displayValue', - label: 'Display Value', - targetColumnMap: { - value: 'displayValue', - }, - description: 'View Filter Display Value', - icon: null, - isNullable: false, - }, - // View Sorts - { - objectMetadataId: '6f8dcd4b-cf28-41dd-b98b-d6e1f5b3a251', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'fieldMetadataId', - label: 'Field Metadata Id', - targetColumnMap: { - value: 'fieldMetadataId', - }, - description: 'View Sort target field', - icon: null, - isNullable: false, - }, - { - objectMetadataId: '6f8dcd4b-cf28-41dd-b98b-d6e1f5b3a251', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'viewId', - label: 'View Id', - targetColumnMap: { - value: 'viewId', - }, - description: 'View Sort related view', - icon: null, - isNullable: false, - }, - { - objectMetadataId: '6f8dcd4b-cf28-41dd-b98b-d6e1f5b3a251', - isCustom: false, - workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', - isActive: true, - type: 'TEXT', - name: 'direction', - label: 'Direction', - targetColumnMap: { - value: 'direction', - }, - description: 'View Sort direction', - icon: null, - isNullable: false, - }, - ]) - .execute(); -}; diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/company.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/company.ts new file mode 100644 index 000000000..cf01621de --- /dev/null +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/company.ts @@ -0,0 +1,89 @@ +import { DataSource } from 'typeorm'; + +const tableName = 'fieldMetadata'; + +export const seedCompanyFieldMetadata = async ( + workspaceDataSource: DataSource, + schemaName: string, +) => { + await workspaceDataSource + .createQueryBuilder() + .insert() + .into(`${schemaName}.${tableName}`, [ + 'objectMetadataId', + 'isCustom', + 'workspaceId', + 'isActive', + 'type', + 'name', + 'label', + 'targetColumnMap', + 'description', + 'icon', + 'isNullable', + ]) + .orIgnore() + .values([ + { + objectMetadataId: '1a8487a0-480c-434e-b4c7-e22408b97047', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'name', + label: 'Name', + targetColumnMap: { + value: 'name', + }, + description: 'Name of the company', + icon: 'IconBuildingSkyscraper', + isNullable: false, + }, + { + objectMetadataId: '1a8487a0-480c-434e-b4c7-e22408b97047', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'domainName', + label: 'Domain Name', + targetColumnMap: { + value: 'domainName', + }, + description: 'Domain name of the company', + icon: 'IconLink', + isNullable: true, + }, + { + objectMetadataId: '1a8487a0-480c-434e-b4c7-e22408b97047', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'address', + label: 'Address', + targetColumnMap: { + value: 'address', + }, + description: 'Address of the company', + icon: 'IconMap', + isNullable: true, + }, + { + objectMetadataId: '1a8487a0-480c-434e-b4c7-e22408b97047', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'employees', + label: 'Employees', + targetColumnMap: { + value: 'employees', + }, + description: 'Number of employees', + icon: 'IconUsers', + isNullable: true, + }, + ]) + .execute(); +}; diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/view.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/view.ts new file mode 100644 index 000000000..3ccb4e4b5 --- /dev/null +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/view.ts @@ -0,0 +1,89 @@ +import { DataSource } from 'typeorm'; + +const tableName = 'fieldMetadata'; + +export const seedViewFieldMetadata = async ( + workspaceDataSource: DataSource, + schemaName: string, +) => { + await workspaceDataSource + .createQueryBuilder() + .insert() + .into(`${schemaName}.${tableName}`, [ + 'id', + 'objectMetadataId', + 'isCustom', + 'workspaceId', + 'isActive', + 'type', + 'name', + 'label', + 'targetColumnMap', + 'description', + 'icon', + 'isNullable', + ]) + .orIgnore() + .values([ + { + objectMetadataId: '9ab6b3dc-767f-473f-8fd0-6cdbefbf8dbe', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'name', + label: 'Name', + targetColumnMap: { + value: 'name', + }, + description: 'View name', + icon: null, + isNullable: false, + }, + { + objectMetadataId: '9ab6b3dc-767f-473f-8fd0-6cdbefbf8dbe', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'objectMetadataId', + label: 'Object Metadata Id', + targetColumnMap: { + value: 'objectMetadataId', + }, + description: 'View target object', + icon: null, + isNullable: false, + }, + { + objectMetadataId: '9ab6b3dc-767f-473f-8fd0-6cdbefbf8dbe', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'type', + label: 'Type', + targetColumnMap: { + value: 'type', + }, + description: 'View type', + icon: null, + isNullable: false, + }, + { + id: '064eb439-fdfa-4246-a13a-989c5bcc4d97', + objectMetadataId: '9ab6b3dc-767f-473f-8fd0-6cdbefbf8dbe', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'RELATION', + name: 'viewFields', + label: 'View Fields', + targetColumnMap: {}, + description: 'View Fields', + icon: null, + isNullable: false, + }, + ]) + .execute(); +}; diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/viewField.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/viewField.ts new file mode 100644 index 000000000..061ff32a2 --- /dev/null +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/viewField.ts @@ -0,0 +1,104 @@ +import { DataSource } from 'typeorm'; + +const tableName = 'fieldMetadata'; + +export const seedViewFieldFieldMetadata = async ( + workspaceDataSource: DataSource, + schemaName: string, +) => { + await workspaceDataSource + .createQueryBuilder() + .insert() + .into(`${schemaName}.${tableName}`, [ + 'id', + 'objectMetadataId', + 'isCustom', + 'workspaceId', + 'isActive', + 'type', + 'name', + 'label', + 'targetColumnMap', + 'description', + 'icon', + 'isNullable', + ]) + .orIgnore() + .values([ + { + objectMetadataId: '61d9000b-485c-4c48-a22e-0d9a164f9647', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'fieldMetadataId', + label: 'Field Metadata Id', + targetColumnMap: { + value: 'fieldMetadataId', + }, + description: 'View Field target field', + icon: null, + isNullable: false, + }, + { + id: 'a9a56210-a154-4965-9ace-c35f6dc43ee5', + objectMetadataId: '61d9000b-485c-4c48-a22e-0d9a164f9647', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'RELATION', + name: 'view', + label: 'View Id', + targetColumnMap: { value: 'viewId' }, + description: 'View Field related view', + icon: null, + isNullable: false, + }, + { + objectMetadataId: '61d9000b-485c-4c48-a22e-0d9a164f9647', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'BOOLEAN', + name: 'isVisible', + label: 'Visible', + targetColumnMap: { + value: 'isVisible', + }, + description: 'View Field visibility', + icon: null, + isNullable: false, + }, + { + objectMetadataId: '61d9000b-485c-4c48-a22e-0d9a164f9647', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'NUMBER', + name: 'size', + label: 'Size', + targetColumnMap: { + value: 'size', + }, + description: 'View Field size', + icon: null, + isNullable: false, + }, + { + objectMetadataId: '61d9000b-485c-4c48-a22e-0d9a164f9647', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'NUMBER', + name: 'position', + label: 'Position', + targetColumnMap: { + value: 'position', + }, + description: 'View Field position', + icon: null, + isNullable: false, + }, + ]) + .execute(); +}; diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/viewFilter.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/viewFilter.ts new file mode 100644 index 000000000..323d17c03 --- /dev/null +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/viewFilter.ts @@ -0,0 +1,105 @@ +import { DataSource } from 'typeorm'; + +const tableName = 'fieldMetadata'; + +export const seedViewFilterFieldMetadata = async ( + workspaceDataSource: DataSource, + schemaName: string, +) => { + await workspaceDataSource + .createQueryBuilder() + .insert() + .into(`${schemaName}.${tableName}`, [ + 'objectMetadataId', + 'isCustom', + 'workspaceId', + 'isActive', + 'type', + 'name', + 'label', + 'targetColumnMap', + 'description', + 'icon', + 'isNullable', + ]) + .orIgnore() + .values([ + // View Filters + { + objectMetadataId: '5d9b1ab9-4461-4e2d-bf9e-9b47e68846d3', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'fieldMetadataId', + label: 'Field Metadata Id', + targetColumnMap: { + value: 'fieldMetadataId', + }, + description: 'View Filter target field', + icon: null, + isNullable: false, + }, + { + objectMetadataId: '5d9b1ab9-4461-4e2d-bf9e-9b47e68846d3', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'viewId', + label: 'View Id', + targetColumnMap: { + value: 'viewId', + }, + description: 'View Filter related view', + icon: null, + isNullable: false, + }, + { + objectMetadataId: '5d9b1ab9-4461-4e2d-bf9e-9b47e68846d3', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'operand', + label: 'Operand', + targetColumnMap: { + value: 'operand', + }, + description: 'View Filter operand', + icon: null, + isNullable: false, + }, + { + objectMetadataId: '5d9b1ab9-4461-4e2d-bf9e-9b47e68846d3', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'value', + label: 'Value', + targetColumnMap: { + value: 'value', + }, + description: 'View Filter value', + icon: null, + isNullable: false, + }, + { + objectMetadataId: '5d9b1ab9-4461-4e2d-bf9e-9b47e68846d3', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'displayValue', + label: 'Display Value', + targetColumnMap: { + value: 'displayValue', + }, + description: 'View Filter Display Value', + icon: null, + isNullable: false, + }, + ]) + .execute(); +}; diff --git a/server/src/database/typeorm-seeds/metadata/field-metadata/viewSort.ts b/server/src/database/typeorm-seeds/metadata/field-metadata/viewSort.ts new file mode 100644 index 000000000..b5fce2f5a --- /dev/null +++ b/server/src/database/typeorm-seeds/metadata/field-metadata/viewSort.ts @@ -0,0 +1,74 @@ +import { DataSource } from 'typeorm'; + +const tableName = 'fieldMetadata'; + +export const seedViewSortFieldMetadata = async ( + workspaceDataSource: DataSource, + schemaName: string, +) => { + await workspaceDataSource + .createQueryBuilder() + .insert() + .into(`${schemaName}.${tableName}`, [ + 'objectMetadataId', + 'isCustom', + 'workspaceId', + 'isActive', + 'type', + 'name', + 'label', + 'targetColumnMap', + 'description', + 'icon', + 'isNullable', + ]) + .orIgnore() + .values([ + { + objectMetadataId: '6f8dcd4b-cf28-41dd-b98b-d6e1f5b3a251', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'fieldMetadataId', + label: 'Field Metadata Id', + targetColumnMap: { + value: 'fieldMetadataId', + }, + description: 'View Sort target field', + icon: null, + isNullable: false, + }, + { + objectMetadataId: '6f8dcd4b-cf28-41dd-b98b-d6e1f5b3a251', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'viewId', + label: 'View Id', + targetColumnMap: { + value: 'viewId', + }, + description: 'View Sort related view', + icon: null, + isNullable: false, + }, + { + objectMetadataId: '6f8dcd4b-cf28-41dd-b98b-d6e1f5b3a251', + isCustom: false, + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + isActive: true, + type: 'TEXT', + name: 'direction', + label: 'Direction', + targetColumnMap: { + value: 'direction', + }, + description: 'View Sort direction', + icon: null, + isNullable: false, + }, + ]) + .execute(); +}; diff --git a/server/src/database/typeorm-seeds/metadata/object-metadata.ts b/server/src/database/typeorm-seeds/metadata/object-metadata.ts index 4766d0e3b..699f21655 100644 --- a/server/src/database/typeorm-seeds/metadata/object-metadata.ts +++ b/server/src/database/typeorm-seeds/metadata/object-metadata.ts @@ -24,7 +24,6 @@ export const seedObjectMetadata = async ( ]) .orIgnore() .values([ - // Companies { id: '1a8487a0-480c-434e-b4c7-e22408b97047', nameSingular: 'companyV2', @@ -38,7 +37,6 @@ export const seedObjectMetadata = async ( workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', isActive: true, }, - // Views { id: '9ab6b3dc-767f-473f-8fd0-6cdbefbf8dbe', nameSingular: 'viewV2', @@ -52,7 +50,6 @@ export const seedObjectMetadata = async ( workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', isActive: true, }, - // ViewFields { id: '61d9000b-485c-4c48-a22e-0d9a164f9647', nameSingular: 'viewFieldV2', @@ -66,7 +63,6 @@ export const seedObjectMetadata = async ( workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', isActive: true, }, - // ViewFilters { id: '5d9b1ab9-4461-4e2d-bf9e-9b47e68846d3', nameSingular: 'viewFilterV2', @@ -80,7 +76,6 @@ export const seedObjectMetadata = async ( workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', isActive: true, }, - // ViewSorts { id: '6f8dcd4b-cf28-41dd-b98b-d6e1f5b3a251', nameSingular: 'viewSortV2', diff --git a/server/src/database/typeorm-seeds/metadata/relation-metadata/view.ts b/server/src/database/typeorm-seeds/metadata/relation-metadata/view.ts new file mode 100644 index 000000000..369577e3e --- /dev/null +++ b/server/src/database/typeorm-seeds/metadata/relation-metadata/view.ts @@ -0,0 +1,34 @@ +import { DataSource } from 'typeorm'; + +import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; + +const tableName = 'relationMetadata'; + +export const seedViewRelationMetadata = async ( + workspaceDataSource: DataSource, + schemaName: string, +) => { + await workspaceDataSource + .createQueryBuilder() + .insert() + .into(`${schemaName}.${tableName}`, [ + 'relationType', + 'fromObjectMetadataId', + 'toObjectMetadataId', + 'fromFieldMetadataId', + 'toFieldMetadataId', + 'workspaceId', + ]) + .orIgnore() + .values([ + { + relationType: RelationMetadataType.ONE_TO_MANY, + fromObjectMetadataId: '9ab6b3dc-767f-473f-8fd0-6cdbefbf8dbe', // View + toObjectMetadataId: '61d9000b-485c-4c48-a22e-0d9a164f9647', // ViewField + fromFieldMetadataId: '064eb439-fdfa-4246-a13a-989c5bcc4d97', // View > ViewFields + toFieldMetadataId: 'a9a56210-a154-4965-9ace-c35f6dc43ee5', // ViewField > View + workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + }, + ]) + .execute(); +}; diff --git a/server/src/metadata/relation-metadata/relation-metadata.module.ts b/server/src/metadata/relation-metadata/relation-metadata.module.ts index 9ef0ea602..3ea2d9c76 100644 --- a/server/src/metadata/relation-metadata/relation-metadata.module.ts +++ b/server/src/metadata/relation-metadata/relation-metadata.module.ts @@ -40,7 +40,6 @@ import { RelationMetadataDTO } from './dtos/relation-metadata.dto'; CreateDTOClass: CreateRelationInput, enableTotalCount: true, pagingStrategy: PagingStrategies.CURSOR, - read: { many: { disabled: true } }, create: { many: { disabled: true } }, update: { disabled: true }, delete: { disabled: true }, diff --git a/server/src/metadata/tenant-migration/migrations/1697618012-addViewFieldTable.ts b/server/src/metadata/tenant-migration/migrations/1697618012-addViewFieldTable.ts index 6742d1140..c11e32b98 100644 --- a/server/src/metadata/tenant-migration/migrations/1697618012-addViewFieldTable.ts +++ b/server/src/metadata/tenant-migration/migrations/1697618012-addViewFieldTable.ts @@ -17,11 +17,6 @@ export const addViewFieldTable: TenantMigrationTableAction[] = [ columnType: 'varchar', action: TenantMigrationColumnActionType.CREATE, }, - { - columnName: 'viewId', - columnType: 'varchar', - action: TenantMigrationColumnActionType.CREATE, - }, { columnName: 'position', columnType: 'integer', @@ -37,6 +32,17 @@ export const addViewFieldTable: TenantMigrationTableAction[] = [ columnType: 'integer', action: TenantMigrationColumnActionType.CREATE, }, + { + columnName: 'viewId', + columnType: 'uuid', + action: TenantMigrationColumnActionType.CREATE, + }, + { + columnName: 'viewId', + referencedTableName: 'view', + referencedTableColumnName: 'id', + action: TenantMigrationColumnActionType.RELATION, + }, ], }, ]; diff --git a/server/src/tenant/schema-builder/factories/filter-type-definition.factory.ts b/server/src/tenant/schema-builder/factories/filter-type-definition.factory.ts index d6f295a22..e78e36ea9 100644 --- a/server/src/tenant/schema-builder/factories/filter-type-definition.factory.ts +++ b/server/src/tenant/schema-builder/factories/filter-type-definition.factory.ts @@ -70,7 +70,7 @@ export class FilterTypeDefinitionFactory { for (const fieldMetadata of objectMetadata.fields) { // Composite field types are generated during extensin of object type definition if (isCompositeFieldMetadataType(fieldMetadata.type)) { - continue; + //continue; } const type = this.filterTypeFactory.create(fieldMetadata, options, { diff --git a/server/src/tenant/schema-builder/factories/input-type-definition.factory.ts b/server/src/tenant/schema-builder/factories/input-type-definition.factory.ts index b96a5ad94..cc9ad91a8 100644 --- a/server/src/tenant/schema-builder/factories/input-type-definition.factory.ts +++ b/server/src/tenant/schema-builder/factories/input-type-definition.factory.ts @@ -55,7 +55,7 @@ export class InputTypeDefinitionFactory { for (const fieldMetadata of objectMetadata.fields) { // Composite field types are generated during extensin of object type definition if (isCompositeFieldMetadataType(fieldMetadata.type)) { - continue; + //continue; } const type = this.inputTypeFactory.create(fieldMetadata, kind, options, { diff --git a/server/src/tenant/schema-builder/services/type-mapper.service.ts b/server/src/tenant/schema-builder/services/type-mapper.service.ts index b68149a2c..ef12a83cd 100644 --- a/server/src/tenant/schema-builder/services/type-mapper.service.ts +++ b/server/src/tenant/schema-builder/services/type-mapper.service.ts @@ -61,6 +61,7 @@ export class TypeMapperService { [FieldMetadataType.DATE, dateScalar], [FieldMetadataType.BOOLEAN, GraphQLBoolean], [FieldMetadataType.NUMBER, numberScalar], + [FieldMetadataType.RELATION, GraphQLID], ]); return typeScalarMapping.get(fieldMetadataType); @@ -88,6 +89,7 @@ export class TypeMapperService { [FieldMetadataType.DATE, dateFilter], [FieldMetadataType.BOOLEAN, BooleanFilterType], [FieldMetadataType.NUMBER, numberScalar], + [FieldMetadataType.RELATION, UUIDFilterType], ]); return typeFilterMapping.get(fieldMetadataType);