feat: update links field (#5212)
Closes #5113 --------- Co-authored-by: Jérémy Magrin <jeremy.magrin@gmail.com>
This commit is contained in:
@ -2,7 +2,10 @@ import { isUndefined } from '@sniptt/guards';
|
||||
|
||||
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
|
||||
import { mapObjectMetadataToGraphQLQuery } from '@/object-metadata/utils/mapObjectMetadataToGraphQLQuery';
|
||||
import { FieldMetadataType } from '~/generated-metadata/graphql';
|
||||
import {
|
||||
FieldMetadataType,
|
||||
RelationMetadataType,
|
||||
} from '~/generated-metadata/graphql';
|
||||
|
||||
import { FieldMetadataItem } from '../types/FieldMetadataItem';
|
||||
|
||||
@ -23,29 +26,29 @@ export const mapFieldMetadataToGraphQLQuery = ({
|
||||
}): any => {
|
||||
const fieldType = field.type;
|
||||
|
||||
const fieldIsSimpleValue = (
|
||||
[
|
||||
'UUID',
|
||||
'TEXT',
|
||||
'PHONE',
|
||||
'DATE_TIME',
|
||||
'DATE',
|
||||
'EMAIL',
|
||||
'NUMBER',
|
||||
'BOOLEAN',
|
||||
'RATING',
|
||||
'SELECT',
|
||||
'MULTI_SELECT',
|
||||
'POSITION',
|
||||
'RAW_JSON',
|
||||
] as FieldMetadataType[]
|
||||
).includes(fieldType);
|
||||
const fieldIsSimpleValue = [
|
||||
FieldMetadataType.Uuid,
|
||||
FieldMetadataType.Text,
|
||||
FieldMetadataType.Phone,
|
||||
FieldMetadataType.DateTime,
|
||||
FieldMetadataType.Date,
|
||||
FieldMetadataType.Email,
|
||||
FieldMetadataType.Number,
|
||||
FieldMetadataType.Boolean,
|
||||
FieldMetadataType.Rating,
|
||||
FieldMetadataType.Select,
|
||||
FieldMetadataType.MultiSelect,
|
||||
FieldMetadataType.Position,
|
||||
FieldMetadataType.RawJson,
|
||||
].includes(fieldType);
|
||||
|
||||
if (fieldIsSimpleValue) {
|
||||
return field.name;
|
||||
} else if (
|
||||
fieldType === 'RELATION' &&
|
||||
field.toRelationMetadata?.relationType === 'ONE_TO_MANY'
|
||||
}
|
||||
|
||||
if (
|
||||
fieldType === FieldMetadataType.Relation &&
|
||||
field.toRelationMetadata?.relationType === RelationMetadataType.OneToMany
|
||||
) {
|
||||
const relationMetadataItem = objectMetadataItems.find(
|
||||
(objectMetadataItem) =>
|
||||
@ -65,9 +68,11 @@ ${mapObjectMetadataToGraphQLQuery({
|
||||
computeReferences: computeReferences,
|
||||
isRootLevel: false,
|
||||
})}`;
|
||||
} else if (
|
||||
fieldType === 'RELATION' &&
|
||||
field.fromRelationMetadata?.relationType === 'ONE_TO_MANY'
|
||||
}
|
||||
|
||||
if (
|
||||
fieldType === FieldMetadataType.Relation &&
|
||||
field.fromRelationMetadata?.relationType === RelationMetadataType.OneToMany
|
||||
) {
|
||||
const relationMetadataItem = objectMetadataItems.find(
|
||||
(objectMetadataItem) =>
|
||||
@ -91,26 +96,43 @@ ${mapObjectMetadataToGraphQLQuery({
|
||||
})}
|
||||
}
|
||||
}`;
|
||||
} else if (fieldType === 'LINK') {
|
||||
}
|
||||
|
||||
if (fieldType === FieldMetadataType.Link) {
|
||||
return `${field.name}
|
||||
{
|
||||
label
|
||||
url
|
||||
}`;
|
||||
} else if (fieldType === 'CURRENCY') {
|
||||
}
|
||||
|
||||
if (fieldType === FieldMetadataType.Links) {
|
||||
return `${field.name}
|
||||
{
|
||||
primaryLinkUrl
|
||||
primaryLinkLabel
|
||||
secondaryLinks
|
||||
}`;
|
||||
}
|
||||
|
||||
if (fieldType === FieldMetadataType.Currency) {
|
||||
return `${field.name}
|
||||
{
|
||||
amountMicros
|
||||
currencyCode
|
||||
}
|
||||
`;
|
||||
} else if (fieldType === 'FULL_NAME') {
|
||||
}
|
||||
|
||||
if (fieldType === FieldMetadataType.FullName) {
|
||||
return `${field.name}
|
||||
{
|
||||
firstName
|
||||
lastName
|
||||
}`;
|
||||
} else if (fieldType === 'ADDRESS') {
|
||||
}
|
||||
|
||||
if (fieldType === FieldMetadataType.Address) {
|
||||
return `${field.name}
|
||||
{
|
||||
addressStreet1
|
||||
|
||||
Reference in New Issue
Block a user