feat: update links field (#5212)

Closes #5113

---------

Co-authored-by: Jérémy Magrin <jeremy.magrin@gmail.com>
This commit is contained in:
Thaïs
2024-05-01 14:56:55 +02:00
committed by GitHub
parent 8853226d17
commit 0d023e5e77
11 changed files with 146 additions and 56 deletions

View File

@ -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