59fbe35a8c
# Introduction Preparing view-filter and view-group introduction in v2 core engine Moving view from `core-modules` to `metadata-modules` ## What happened ### Created dedicated modules for each view entity: - ViewFieldModule - ViewFilterModule - ViewFilterGroupModule - ViewGroupModule - ViewSortModule ### Each module is now completely independent with its own: - Controller - Resolver - Service - Entity ### Created dedicated abstraction metadata module folder for: - flat-view-field - flat-view ### Dependencies - Eleminated circular dep on ViewModule to all others ones - Granular import not importing the whole viewModule anymore everywhere close https://github.com/twentyhq/core-team-issues/issues/1703
51 lines
1.7 KiB
TypeScript
51 lines
1.7 KiB
TypeScript
import { t } from '@lingui/core/macro';
|
|
import {
|
|
extractAndSanitizeObjectStringFields,
|
|
isDefined,
|
|
trimAndRemoveDuplicatedWhitespacesFromObjectStringProperties,
|
|
} from 'twenty-shared/utils';
|
|
|
|
import { FLAT_VIEW_EDITABLE_PROPERTIES } from 'src/engine/metadata-modules/flat-view/constants/flat-view-editable-properties.constant';
|
|
import { type FlatViewMaps } from 'src/engine/metadata-modules/flat-view/types/flat-view-maps.type';
|
|
import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type';
|
|
import { type UpdateViewInput } from 'src/engine/metadata-modules/view/dtos/inputs/update-view.input';
|
|
import {
|
|
ViewException,
|
|
ViewExceptionCode,
|
|
} from 'src/engine/metadata-modules/view/exceptions/view.exception';
|
|
import { mergeUpdateInExistingRecord } from 'src/utils/merge-update-in-existing-record.util';
|
|
|
|
export const fromUpdateViewInputToFlatViewToUpdateOrThrow = ({
|
|
updateViewInput: rawUpdateViewInput,
|
|
flatViewMaps,
|
|
}: {
|
|
updateViewInput: UpdateViewInput;
|
|
flatViewMaps: FlatViewMaps;
|
|
}): FlatView => {
|
|
const { id: viewToUpdateId } =
|
|
trimAndRemoveDuplicatedWhitespacesFromObjectStringProperties(
|
|
rawUpdateViewInput,
|
|
['id'],
|
|
);
|
|
|
|
const existingFlatViewToUpdate = flatViewMaps.byId[viewToUpdateId];
|
|
|
|
if (!isDefined(existingFlatViewToUpdate)) {
|
|
throw new ViewException(
|
|
t`View to update not found`,
|
|
ViewExceptionCode.VIEW_NOT_FOUND,
|
|
);
|
|
}
|
|
|
|
const updatedEditableFieldProperties = extractAndSanitizeObjectStringFields(
|
|
rawUpdateViewInput,
|
|
FLAT_VIEW_EDITABLE_PROPERTIES,
|
|
);
|
|
|
|
return mergeUpdateInExistingRecord({
|
|
existing: existingFlatViewToUpdate,
|
|
properties: FLAT_VIEW_EDITABLE_PROPERTIES,
|
|
update: updatedEditableFieldProperties,
|
|
});
|
|
};
|