[BREAKING_CHANGE_VIEW_SORT] Refactor view sort to v2 (#17609)
Fixes https://github.com/twentyhq/core-team-issues/issues/2187 --------- Co-authored-by: prastoin <paul@twenty.com> Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
This commit is contained in:
@@ -11,6 +11,7 @@ import { ViewFilterGroupEntity } from 'src/engine/metadata-modules/view-filter-g
|
||||
import { ViewFilterEntity } from 'src/engine/metadata-modules/view-filter/entities/view-filter.entity';
|
||||
import { ViewGroupEntity } from 'src/engine/metadata-modules/view-group/entities/view-group.entity';
|
||||
import { ViewEntity } from 'src/engine/metadata-modules/view/entities/view.entity';
|
||||
import { ViewSortEntity } from 'src/engine/metadata-modules/view-sort/entities/view-sort.entity';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
@@ -23,6 +24,7 @@ import { ViewEntity } from 'src/engine/metadata-modules/view/entities/view.entit
|
||||
ViewFieldGroupEntity,
|
||||
ViewFilterEntity,
|
||||
ViewGroupEntity,
|
||||
ViewSortEntity,
|
||||
ViewFilterGroupEntity,
|
||||
]),
|
||||
],
|
||||
|
||||
+15
@@ -16,6 +16,7 @@ import { ViewFieldEntity } from 'src/engine/metadata-modules/view-field/entities
|
||||
import { ViewFilterGroupEntity } from 'src/engine/metadata-modules/view-filter-group/entities/view-filter-group.entity';
|
||||
import { ViewFilterEntity } from 'src/engine/metadata-modules/view-filter/entities/view-filter.entity';
|
||||
import { ViewGroupEntity } from 'src/engine/metadata-modules/view-group/entities/view-group.entity';
|
||||
import { ViewSortEntity } from 'src/engine/metadata-modules/view-sort/entities/view-sort.entity';
|
||||
import { ViewEntity } from 'src/engine/metadata-modules/view/entities/view.entity';
|
||||
import { WorkspaceCache } from 'src/engine/workspace-cache/decorators/workspace-cache.decorator';
|
||||
import { createIdToUniversalIdentifierMap } from 'src/engine/workspace-cache/utils/create-id-to-universal-identifier-map.util';
|
||||
@@ -42,6 +43,8 @@ export class WorkspaceFlatViewMapCacheService extends WorkspaceCacheProvider<Fla
|
||||
private readonly viewGroupRepository: Repository<ViewGroupEntity>,
|
||||
@InjectRepository(ViewFilterGroupEntity)
|
||||
private readonly viewFilterGroupRepository: Repository<ViewFilterGroupEntity>,
|
||||
@InjectRepository(ViewSortEntity)
|
||||
private readonly viewSortRepository: Repository<ViewSortEntity>,
|
||||
@InjectRepository(ViewFieldGroupEntity)
|
||||
private readonly viewFieldGroupRepository: Repository<ViewFieldGroupEntity>,
|
||||
) {
|
||||
@@ -58,6 +61,7 @@ export class WorkspaceFlatViewMapCacheService extends WorkspaceCacheProvider<Fla
|
||||
viewFilters,
|
||||
viewGroups,
|
||||
viewFilterGroups,
|
||||
viewSorts,
|
||||
viewFieldGroups,
|
||||
] = await Promise.all([
|
||||
this.viewRepository.find({
|
||||
@@ -99,6 +103,11 @@ export class WorkspaceFlatViewMapCacheService extends WorkspaceCacheProvider<Fla
|
||||
select: ['id', 'universalIdentifier', 'viewId'],
|
||||
withDeleted: true,
|
||||
}),
|
||||
this.viewSortRepository.find({
|
||||
where: { workspaceId },
|
||||
select: ['id', 'universalIdentifier', 'viewId'],
|
||||
withDeleted: true,
|
||||
}),
|
||||
this.viewFieldGroupRepository.find({
|
||||
where: { workspaceId },
|
||||
select: ['id', 'universalIdentifier', 'viewId'],
|
||||
@@ -111,6 +120,7 @@ export class WorkspaceFlatViewMapCacheService extends WorkspaceCacheProvider<Fla
|
||||
viewFiltersByViewId,
|
||||
viewGroupsByViewId,
|
||||
viewFilterGroupsByViewId,
|
||||
viewSortsByViewId,
|
||||
viewFieldGroupsByViewId,
|
||||
] = (
|
||||
[
|
||||
@@ -130,6 +140,10 @@ export class WorkspaceFlatViewMapCacheService extends WorkspaceCacheProvider<Fla
|
||||
entities: viewFilterGroups,
|
||||
foreignKey: 'viewId',
|
||||
},
|
||||
{
|
||||
entities: viewSorts,
|
||||
foreignKey: 'viewId',
|
||||
},
|
||||
{
|
||||
entities: viewFieldGroups,
|
||||
foreignKey: 'viewId',
|
||||
@@ -154,6 +168,7 @@ export class WorkspaceFlatViewMapCacheService extends WorkspaceCacheProvider<Fla
|
||||
viewFilters: viewFiltersByViewId.get(viewEntity.id) || [],
|
||||
viewGroups: viewGroupsByViewId.get(viewEntity.id) || [],
|
||||
viewFilterGroups: viewFilterGroupsByViewId.get(viewEntity.id) || [],
|
||||
viewSorts: viewSortsByViewId.get(viewEntity.id) || [],
|
||||
viewFieldGroups: viewFieldGroupsByViewId.get(viewEntity.id) || [],
|
||||
},
|
||||
applicationIdToUniversalIdentifierMap,
|
||||
|
||||
+1
-4
@@ -1,7 +1,4 @@
|
||||
import { type FlatEntityFrom } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-from.type';
|
||||
import { type ViewEntity } from 'src/engine/metadata-modules/view/entities/view.entity';
|
||||
|
||||
export type FlatView = FlatEntityFrom<
|
||||
// TODO remove once viewSorts has been migrated to v2
|
||||
Omit<ViewEntity, 'viewSorts'>
|
||||
>;
|
||||
export type FlatView = FlatEntityFrom<ViewEntity>;
|
||||
|
||||
+1
@@ -91,6 +91,7 @@ export const fromCreateViewInputToFlatViewToCreate = ({
|
||||
viewGroupUniversalIdentifiers: [],
|
||||
viewFieldGroupUniversalIdentifiers: [],
|
||||
viewFilterGroupUniversalIdentifiers: [],
|
||||
viewSortUniversalIdentifiers: [],
|
||||
applicationUniversalIdentifier: flatApplication.universalIdentifier,
|
||||
};
|
||||
|
||||
|
||||
+5
@@ -121,5 +121,10 @@ export const fromViewEntityToFlatView = ({
|
||||
viewEntity.viewFilterGroups?.map(
|
||||
({ universalIdentifier }) => universalIdentifier,
|
||||
) ?? [],
|
||||
viewSortIds: viewEntity.viewSorts?.map(({ id }) => id) ?? [],
|
||||
viewSortUniversalIdentifiers:
|
||||
viewEntity.viewSorts?.map(
|
||||
({ universalIdentifier }) => universalIdentifier,
|
||||
) ?? [],
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user