update to new models

This commit is contained in:
Jesper Møller Jensen
2023-03-20 16:06:15 +13:00
parent b2a7ec2c0f
commit 39cd245c7a
4 changed files with 18 additions and 11 deletions

View File

@@ -66,6 +66,12 @@ export class UmbRelationTypeRepository implements UmbTreeRepository, UmbDetailRe
return { data, error, asObservable: () => this.#treeStore!.rootItems };
}
//TODO RelationTypes can't have children. But this method is required by the tree interface.
async requestTreeItemsOf(parentKey: string | null) {
const error: ProblemDetailsModel = { title: 'Not implemented' };
return { data: undefined, error };
}
async requestTreeItems(keys: Array<string>) {
await this.#init;

View File

@@ -1,7 +1,7 @@
import type { DataSourceResponse } from '@umbraco-cms/models';
import type { EntityTreeItemModel, PagedEntityTreeItemModel } from '@umbraco-cms/backend-api';
import { EntityTreeItemResponseModel, PagedEntityTreeItemResponseModel } from '@umbraco-cms/backend-api';
export interface RelationTypeTreeDataSource {
getRootItems(): Promise<DataSourceResponse<PagedEntityTreeItemModel>>;
getItems(key: Array<string>): Promise<DataSourceResponse<EntityTreeItemModel[]>>;
getRootItems(): Promise<DataSourceResponse<PagedEntityTreeItemResponseModel>>;
getItems(key: Array<string>): Promise<DataSourceResponse<EntityTreeItemResponseModel[]>>;
}

View File

@@ -1,13 +1,14 @@
import { UmbWorkspaceContext } from '../../../shared/components/workspace/workspace-context/workspace-context';
import { UmbWorkspaceEntityContextInterface } from '../../../shared/components/workspace/workspace-context/workspace-entity-context.interface';
import { UmbRelationTypeRepository } from '../repository/relation-type.repository';
import { UmbEntityWorkspaceContextInterface } from '../../../shared/components/workspace/workspace-context/workspace-entity-context.interface';
import type { RelationTypeBaseModel, RelationTypeResponseModel } from '@umbraco-cms/backend-api';
import { ObjectState } from '@umbraco-cms/observable-api';
import { UmbControllerHostInterface } from '@umbraco-cms/controller';
export class UmbRelationTypeWorkspaceContext
extends UmbWorkspaceContext<UmbRelationTypeRepository>
implements UmbWorkspaceEntityContextInterface<RelationTypeResponseModel | undefined>
implements UmbEntityWorkspaceContextInterface<RelationTypeResponseModel | undefined>
{
#data = new ObjectState<RelationTypeResponseModel | undefined>(undefined);
data = this.#data.asObservable();

View File

@@ -1,6 +1,6 @@
import { UmbEntityData } from './entity.data';
import { createEntityTreeItem, createFolderTreeItem } from './utils';
import type { EntityTreeItemModel, FolderTreeItemModel, RelationTypeResponseModel } from '@umbraco-cms/backend-api';
import { createEntityTreeItem } from './utils';
import type { EntityTreeItemResponseModel, RelationTypeResponseModel } from '@umbraco-cms/backend-api';
// TODO: investigate why we don't get an entity type as part of the RelationTypeResponseModel
export const data: Array<RelationTypeResponseModel> = [
@@ -71,7 +71,7 @@ export const data: Array<RelationTypeResponseModel> = [
},
];
export const treeData: Array<EntityTreeItemModel> = [
export const treeData: Array<EntityTreeItemResponseModel> = [
{
key: 'e0d39ff5-71d8-453f-b682-9d8d31ee5e06',
$type: 'EntityTreeItemViewModel',
@@ -130,18 +130,18 @@ class UmbRelationTypeData extends UmbEntityData<RelationTypeResponseModel> {
}
//TODO Can relation types have children?
getTreeRoot(): Array<FolderTreeItemModel> {
getTreeRoot(): Array<EntityTreeItemResponseModel> {
const rootItems = this.treeData;
return rootItems.map((item) => createEntityTreeItem(item));
}
//TODO Can relation types have children?
getTreeItemChildren(key: string): Array<FolderTreeItemModel> {
getTreeItemChildren(key: string): Array<EntityTreeItemResponseModel> {
const childItems = this.treeData.filter((item) => item.parentKey === key);
return childItems.map((item) => createEntityTreeItem(item));
}
getTreeItem(keys: Array<string>): Array<FolderTreeItemModel> {
getTreeItem(keys: Array<string>): Array<EntityTreeItemResponseModel> {
const items = this.treeData.filter((item) => keys.includes(item.key ?? ''));
return items.map((item) => createEntityTreeItem(item));
}