Optimize metadata queries (#7013)
In this PR: 1. Refactor guards to avoid duplicated queries: WorkspaceAuthGuard and UserAuthGuard only check for existence of workspace and user in the request without querying the database
This commit is contained in:
committed by
Charles Bochet
parent
cf8b1161cc
commit
523df5398a
@ -4,7 +4,7 @@ import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
|
||||
import { mapObjectMetadataToGraphQLQuery } from '@/object-metadata/utils/mapObjectMetadataToGraphQLQuery';
|
||||
import {
|
||||
FieldMetadataType,
|
||||
RelationMetadataType,
|
||||
RelationDefinitionType,
|
||||
} from '~/generated-metadata/graphql';
|
||||
|
||||
import { FieldMetadataItem } from '../types/FieldMetadataItem';
|
||||
@ -17,10 +17,7 @@ export const mapFieldMetadataToGraphQLQuery = ({
|
||||
computeReferences = false,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataItem[];
|
||||
field: Pick<
|
||||
FieldMetadataItem,
|
||||
'name' | 'type' | 'toRelationMetadata' | 'fromRelationMetadata'
|
||||
>;
|
||||
field: Pick<FieldMetadataItem, 'name' | 'type' | 'relationDefinition'>;
|
||||
relationrecordFields?: Record<string, any>;
|
||||
computeReferences?: boolean;
|
||||
}): any => {
|
||||
@ -49,12 +46,12 @@ export const mapFieldMetadataToGraphQLQuery = ({
|
||||
|
||||
if (
|
||||
fieldType === FieldMetadataType.Relation &&
|
||||
field.toRelationMetadata?.relationType === RelationMetadataType.OneToMany
|
||||
field.relationDefinition?.direction === RelationDefinitionType.ManyToOne
|
||||
) {
|
||||
const relationMetadataItem = objectMetadataItems.find(
|
||||
(objectMetadataItem) =>
|
||||
objectMetadataItem.id ===
|
||||
(field.toRelationMetadata as any)?.fromObjectMetadata?.id,
|
||||
field.relationDefinition?.targetObjectMetadata.id,
|
||||
);
|
||||
|
||||
if (isUndefined(relationMetadataItem)) {
|
||||
@ -73,12 +70,12 @@ ${mapObjectMetadataToGraphQLQuery({
|
||||
|
||||
if (
|
||||
fieldType === FieldMetadataType.Relation &&
|
||||
field.fromRelationMetadata?.relationType === RelationMetadataType.OneToMany
|
||||
field.relationDefinition?.direction === RelationDefinitionType.OneToMany
|
||||
) {
|
||||
const relationMetadataItem = objectMetadataItems.find(
|
||||
(objectMetadataItem) =>
|
||||
objectMetadataItem.id ===
|
||||
(field.fromRelationMetadata as any)?.toObjectMetadata?.id,
|
||||
field.relationDefinition?.targetObjectMetadata.id,
|
||||
);
|
||||
|
||||
if (isUndefined(relationMetadataItem)) {
|
||||
|
||||
Reference in New Issue
Block a user