From 434978efc0cea5b5195b5e6df913e04526f17a73 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 7 Dec 2023 16:05:10 +0100 Subject: [PATCH] split into db and data --- .../{ => document-type}/document-type.data.ts | 72 +------------------ .../data/document-type/document-type.db.ts | 69 ++++++++++++++++++ .../src/mocks/data/utils.ts | 2 - 3 files changed, 71 insertions(+), 72 deletions(-) rename src/Umbraco.Web.UI.Client/src/mocks/data/{ => document-type}/document-type.data.ts (90%) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/mocks/data/document-type.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts index 7a0a7d9478..8b9812fa2a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts @@ -1,13 +1,6 @@ -import { UmbEntityData } from './entity.data.js'; -import { createEntityTreeItem } from './utils.js'; -import { - DocumentTypeTreeItemResponseModel, - DocumentTypeResponseModel, - ContentTypeCompositionTypeModel, - DocumentTypeItemResponseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import { DocumentTypeResponseModel, DocumentTypeTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -type UmbMockDocumentTypeModel = DocumentTypeResponseModel & DocumentTypeTreeItemResponseModel; +export type UmbMockDocumentTypeModel = DocumentTypeResponseModel & DocumentTypeTreeItemResponseModel; export const data: Array = [ { @@ -1077,64 +1070,3 @@ export const data: Array = [ }, }, ]; - -class UmbDocumentTypeData extends UmbEntityData { - constructor() { - super(data); - } - - // TODO: Can we do this smarter so we don't need to make this for each mock data: - insert(item: DocumentTypeResponseModel) { - return super.insert(item); - } - - update(id: string, item: DocumentTypeResponseModel) { - return super.save(id, item); - } - - getTreeRoot(): Array { - const rootItems = this.data.filter((item) => item.parentId === null); - return rootItems.map((item) => createDocumentTypeTreeItem(item)); - } - - getTreeItemChildren(id: string): Array { - const childItems = this.data.filter((item) => item.parentId === id); - return childItems.map((item) => createDocumentTypeTreeItem(item)); - } - - getTreeItem(ids: Array): Array { - const items = this.data.filter((item) => ids.includes(item.id ?? '')); - return items.map((item) => createDocumentTypeTreeItem(item)); - } - - getAllowedTypesOf(id: string): Array { - const documentType = this.getById(id); - const allowedTypeKeys = documentType?.allowedContentTypes?.map((documentType) => documentType.id) ?? []; - const items = this.data.filter((item) => allowedTypeKeys.includes(item.id ?? '')); - return items.map((item) => createDocumentTypeTreeItem(item)); - } - - getItems(ids: Array): Array { - const items = this.data.filter((item) => ids.includes(item.id ?? '')); - return items.map((item) => createDocumentTypeItem(item)); - } -} - -export const createDocumentTypeTreeItem = (item: DocumentTypeResponseModel): DocumentTypeTreeItemResponseModel => { - return { - ...createEntityTreeItem(item), - type: 'document-type', - isElement: item.isElement, - }; -}; - -const createDocumentTypeItem = (item: DocumentTypeResponseModel): DocumentTypeItemResponseModel => { - return { - id: item.id, - name: item.name, - isElement: item.isElement, - icon: item.icon, - }; -}; - -export const umbDocumentTypeData = new UmbDocumentTypeData(); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts new file mode 100644 index 0000000000..cc9ceb4039 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts @@ -0,0 +1,69 @@ +import { UmbEntityData } from '../entity.data.js'; +import { createEntityTreeItem } from '../utils.js'; +import { UmbMockDocumentTypeModel, data } from './document-type.data.js'; +import { + DocumentTypeTreeItemResponseModel, + DocumentTypeResponseModel, + DocumentTypeItemResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; + +class UmbDocumentTypeData extends UmbEntityData { + constructor() { + super(data); + } + + // TODO: Can we do this smarter so we don't need to make this for each mock data: + insert(item: DocumentTypeResponseModel) { + return super.insert(item); + } + + update(id: string, item: DocumentTypeResponseModel) { + return super.save(id, item); + } + + getTreeRoot(): Array { + const rootItems = this.data.filter((item) => item.parentId === null); + return rootItems.map((item) => createDocumentTypeTreeItem(item)); + } + + getTreeItemChildren(id: string): Array { + const childItems = this.data.filter((item) => item.parentId === id); + return childItems.map((item) => createDocumentTypeTreeItem(item)); + } + + getTreeItem(ids: Array): Array { + const items = this.data.filter((item) => ids.includes(item.id ?? '')); + return items.map((item) => createDocumentTypeTreeItem(item)); + } + + getAllowedTypesOf(id: string): Array { + const documentType = this.getById(id); + const allowedTypeKeys = documentType?.allowedContentTypes?.map((documentType) => documentType.id) ?? []; + const items = this.data.filter((item) => allowedTypeKeys.includes(item.id ?? '')); + return items.map((item) => createDocumentTypeTreeItem(item)); + } + + getItems(ids: Array): Array { + const items = this.data.filter((item) => ids.includes(item.id ?? '')); + return items.map((item) => createDocumentTypeItem(item)); + } +} + +export const createDocumentTypeTreeItem = (item: DocumentTypeResponseModel): DocumentTypeTreeItemResponseModel => { + return { + ...createEntityTreeItem(item), + type: 'document-type', + isElement: item.isElement, + }; +}; + +const createDocumentTypeItem = (item: DocumentTypeResponseModel): DocumentTypeItemResponseModel => { + return { + id: item.id, + name: item.name, + isElement: item.isElement, + icon: item.icon, + }; +}; + +export const umbDocumentTypeData = new UmbDocumentTypeData(); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts index 9d739c2290..4272bffb30 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts @@ -1,10 +1,8 @@ import type { ContentTreeItemResponseModel, DocumentTreeItemResponseModel, - DocumentTypeTreeItemResponseModel, EntityTreeItemResponseModel, FolderTreeItemResponseModel, - DocumentTypeResponseModel, FileSystemTreeItemPresentationModel, DocumentResponseModel, TextFileResponseModelBaseModel,