Add relation metadata seed (#2431)
* Add relation metadata seed * Fix * Add filtering by relation id on server * Fix
This commit is contained in:
@ -32,6 +32,14 @@ export const FIND_MANY_METADATA_OBJECTS = gql`
|
||||
isNullable
|
||||
createdAt
|
||||
updatedAt
|
||||
fromRelationMetadata {
|
||||
id
|
||||
relationType
|
||||
}
|
||||
toRelationMetadata {
|
||||
id
|
||||
relationType
|
||||
}
|
||||
}
|
||||
}
|
||||
pageInfo {
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -0,0 +1,9 @@
|
||||
import { Field, Relation } from '~/generated-metadata/graphql';
|
||||
|
||||
export type FieldMetadataItem = Omit<
|
||||
Field,
|
||||
'fromRelationMetadata' | 'toRelationMetadata'
|
||||
> & {
|
||||
fromRelationMetadata?: Pick<Relation, 'id' | 'relationType'> | null;
|
||||
toRelationMetadata?: Pick<Relation, 'id' | 'relationType'> | null;
|
||||
};
|
||||
@ -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[];
|
||||
};
|
||||
|
||||
@ -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<ObjectMetadataItem, 'fields'>;
|
||||
icons: Record<string, IconComponent>;
|
||||
}): ColumnDefinition<FieldMetadata> => ({
|
||||
|
||||
@ -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}
|
||||
|
||||
Reference in New Issue
Block a user