fix: multiple twenty orm issues & show an example of use (#5439)

This PR is fixing some issues and adding enhancement in TwentyORM:

- [x] Composite fields in nested relations are not formatted properly
- [x] Passing operators like `Any` in `where` condition is breaking the
query
- [x] Ability to auto load workspace-entities based on a regex path

I've also introduced an example of use for `CalendarEventService`:


https://github.com/twentyhq/twenty/pull/5439/files#diff-3a7dffc0dea57345d10e70c648e911f98fe237248bcea124dafa9c8deb1db748R15
This commit is contained in:
Jérémy M
2024-05-20 11:01:47 +02:00
committed by GitHub
parent 81e8f49033
commit 8b5f79ddbf
147 changed files with 1108 additions and 1101 deletions

View File

@ -2,7 +2,7 @@ import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/
import { RelationMetadataEntity } from 'src/engine/metadata-modules/relation-metadata/relation-metadata.entity';
import { ComputedPartialFieldMetadata } from './partial-field-metadata.interface';
import { ComputedPartialObjectMetadata } from './partial-object-metadata.interface';
import { ComputedPartialWorkspaceEntity } from './partial-object-metadata.interface';
export const enum ComparatorAction {
SKIP = 'SKIP',
@ -32,9 +32,9 @@ export interface ComparatorDeleteResult<T> {
export type ObjectComparatorResult =
| ComparatorSkipResult
| ComparatorCreateResult<ComputedPartialObjectMetadata>
| ComparatorCreateResult<ComputedPartialWorkspaceEntity>
| ComparatorUpdateResult<
Partial<ComputedPartialObjectMetadata> & { id: string }
Partial<ComputedPartialWorkspaceEntity> & { id: string }
>;
export type FieldComparatorResult =

View File

@ -1,13 +1,13 @@
import { PartialFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface';
import { PartialObjectMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-object-metadata.interface';
import { PartialWorkspaceEntity } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-object-metadata.interface';
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
export type MappedFieldMetadata = Record<string, PartialFieldMetadata>;
export interface MappedObjectMetadata
extends Omit<PartialObjectMetadata, 'fields'> {
export interface MappedWorkspaceEntity
extends Omit<PartialWorkspaceEntity, 'fields'> {
fields: MappedFieldMetadata;
}

View File

@ -5,7 +5,7 @@ import {
} from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface';
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
export type PartialObjectMetadata = Omit<
export type PartialWorkspaceEntity = Omit<
ObjectMetadataInterface,
'id' | 'standardId' | 'fromRelations' | 'toRelations' | 'fields' | 'isActive'
> & {
@ -16,8 +16,8 @@ export type PartialObjectMetadata = Omit<
fields: (PartialFieldMetadata | PartialComputedFieldMetadata)[];
};
export type ComputedPartialObjectMetadata = Omit<
PartialObjectMetadata,
export type ComputedPartialWorkspaceEntity = Omit<
PartialWorkspaceEntity,
'standardId' | 'fields'
> & {
standardId: string | null;