@ -46,6 +46,7 @@ export const FIND_MANY_OBJECT_METADATA_ITEMS = gql`
|
||||
dataSourceId
|
||||
nameSingular
|
||||
namePlural
|
||||
isSystem
|
||||
}
|
||||
toFieldMetadataId
|
||||
}
|
||||
@ -57,6 +58,7 @@ export const FIND_MANY_OBJECT_METADATA_ITEMS = gql`
|
||||
dataSourceId
|
||||
nameSingular
|
||||
namePlural
|
||||
isSystem
|
||||
}
|
||||
fromFieldMetadataId
|
||||
}
|
||||
|
||||
@ -54,6 +54,26 @@ export const useMapFieldMetadataToGraphQLQuery = () => {
|
||||
)
|
||||
.join('\n')}
|
||||
}`;
|
||||
} else if (
|
||||
fieldType === 'RELATION' &&
|
||||
field.toRelationMetadata?.relationType === 'ONE_TO_ONE'
|
||||
) {
|
||||
const relationMetadataItem = objectMetadataItems.find(
|
||||
(objectMetadataItem) =>
|
||||
objectMetadataItem.id ===
|
||||
(field.toRelationMetadata as any)?.fromObjectMetadata?.id,
|
||||
);
|
||||
|
||||
return `${field.name}
|
||||
{
|
||||
id
|
||||
${(relationMetadataItem?.fields ?? [])
|
||||
.filter((field) => field.type !== 'RELATION')
|
||||
.map((field) =>
|
||||
mapFieldMetadataToGraphQLQuery(field, maxDepthForRelations - 1),
|
||||
)
|
||||
.join('\n')}
|
||||
}`;
|
||||
} else if (
|
||||
fieldType === 'RELATION' &&
|
||||
field.fromRelationMetadata?.relationType === 'ONE_TO_MANY'
|
||||
|
||||
@ -9,7 +9,7 @@ export type FieldMetadataItem = Omit<
|
||||
| (Pick<Relation, 'id' | 'toFieldMetadataId' | 'relationType'> & {
|
||||
toObjectMetadata: Pick<
|
||||
Relation['toObjectMetadata'],
|
||||
'id' | 'nameSingular' | 'namePlural'
|
||||
'id' | 'nameSingular' | 'namePlural' | 'isSystem'
|
||||
>;
|
||||
})
|
||||
| null;
|
||||
@ -17,7 +17,7 @@ export type FieldMetadataItem = Omit<
|
||||
| (Pick<Relation, 'id' | 'fromFieldMetadataId' | 'relationType'> & {
|
||||
fromObjectMetadata: Pick<
|
||||
Relation['fromObjectMetadata'],
|
||||
'id' | 'nameSingular' | 'namePlural'
|
||||
'id' | 'nameSingular' | 'namePlural' | 'isSystem'
|
||||
>;
|
||||
})
|
||||
| null;
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
export enum StandardObjectNameSingular {
|
||||
Company = 'company',
|
||||
Person = 'person',
|
||||
Opportunity = 'opportunity',
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
||||
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
|
||||
|
||||
export const isObjectMetadataAvailableForRelation = (
|
||||
objectMetadataItem: Pick<ObjectMetadataItem, 'isSystem' | 'nameSingular'>,
|
||||
) => {
|
||||
return (
|
||||
!objectMetadataItem.isSystem ||
|
||||
objectMetadataItem.nameSingular === CoreObjectNameSingular.WorkspaceMember
|
||||
);
|
||||
};
|
||||
@ -1,11 +0,0 @@
|
||||
import { StandardObjectNameSingular } from '@/object-metadata/types/StandardObjectNameSingular';
|
||||
|
||||
export const isStandardObject = (objectNameSingular: string) => {
|
||||
const standardObjectNames = [
|
||||
StandardObjectNameSingular.Company,
|
||||
StandardObjectNameSingular.Person,
|
||||
StandardObjectNameSingular.Opportunity,
|
||||
] as string[];
|
||||
|
||||
return standardObjectNames.includes(objectNameSingular);
|
||||
};
|
||||
Reference in New Issue
Block a user