From 3cc2c73bc23f898803d0c1d9c4ee1b47324945f9 Mon Sep 17 00:00:00 2001 From: Lauren Liberda Date: Sat, 31 Jul 2021 19:35:36 +0200 Subject: [PATCH] fix item ancestor/descendant lists --- src/items/items.service.ts | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/items/items.service.ts b/src/items/items.service.ts index 8fdf906..471ea19 100644 --- a/src/items/items.service.ts +++ b/src/items/items.service.ts @@ -36,14 +36,13 @@ export class ItemsService { } async getItemAncestors(item: ItemModel): Promise { - const childItem = await this.itemRepository.findOneOrFail( - this.eans.toID(item.id), - { - relations: ['parent'], - }, + const id = this.eans.toID(item.id); + const childItem = await this.itemRepository.findOneOrFail(id, { + relations: ['parent'], + }); + return (await this.treeRepository.findAncestors(childItem)).filter( + (anc) => anc.id !== id, ); - // TreeRepository.findAncestors()[-1] is always the child item itself - return (await this.treeRepository.findAncestors(childItem)).slice(0, -1); } async getItemChildren(item: ItemModel): Promise { @@ -55,14 +54,13 @@ export class ItemsService { } async getItemDescendants(item: ItemModel): Promise { - const parentItem = await this.itemRepository.findOneOrFail( - this.eans.toID(item.id), - { - relations: ['parent'], - }, + const id = this.eans.toID(item.id); + const parentItem = await this.itemRepository.findOneOrFail(id, { + relations: ['parent'], + }); + return (await this.treeRepository.findDescendants(parentItem)).filter( + (des) => des.id !== id, ); - // TreeRepository.findDescendants()[0] is always the parent item - return (await this.treeRepository.findDescendants(parentItem)).slice(1); } async getItemList(cursor: number = 0): Promise {