check for children when retrieving from database

This commit is contained in:
Mads Rasmussen
2024-03-01 20:17:25 +01:00
parent eddac04b48
commit b2c4fc1786

View File

@@ -14,16 +14,25 @@ export class UmbMockEntityTreeManager<T extends Omit<EntityTreeItemResponseModel
getRoot({ skip = 0, take = 100 }: { skip?: number; take?: number } = {}) {
const items = this.#db.getAll().filter((item) => item.parent === null);
const paged = pagedResult(items, skip, take);
const treeItems = paged.items.map((item) => this.#treeItemMapper(item));
return { items: treeItems, total: paged.total };
return this.#pagedTreeResult({ items, skip, take });
}
getChildrenOf({ parentId, skip = 0, take = 100 }: { parentId: string; skip?: number; take?: number }) {
const items = this.#db.getAll().filter((item) => item.parent?.id === parentId);
return this.#pagedTreeResult({ items, skip, take });
}
#pagedTreeResult({ items, skip, take }: { items: Array<T>; skip: number; take: number }) {
const paged = pagedResult(items, skip, take);
const treeItems = paged.items.map((item) => this.#treeItemMapper(item));
return { items: treeItems, total: paged.total };
const treeItemsHasChildren = treeItems.map((item) => {
const children = this.#db.getAll().filter((child) => child.parent?.id === item.id);
return {
...item,
hasChildren: children.length > 0,
};
});
return { items: treeItemsHasChildren, total: paged.total };
}
move(ids: Array<string>, destinationId: string) {