diff --git a/src/items/items.resolver.ts b/src/items/items.resolver.ts index ded1df4..68b46b6 100644 --- a/src/items/items.resolver.ts +++ b/src/items/items.resolver.ts @@ -57,4 +57,9 @@ export class ItemsResolver { async createItem(@Args('itemData') itemData: NewItemInput) { return this.itemsService.createItem(itemData); } + + @Mutation((returns) => ItemModel) + async deleteItem(@Args('id', { type: () => ID }) itemId: string) { + return this.itemsService.deleteItem(itemId); + } } diff --git a/src/items/items.service.ts b/src/items/items.service.ts index c93dcee..b8a3765 100644 --- a/src/items/items.service.ts +++ b/src/items/items.service.ts @@ -117,4 +117,14 @@ export class ItemsService { return item; } + + async deleteItem(id: string) { + const item = await this.itemRepository.findOne(this.eans.toID(id)); + if (!item) { + return null; + } + // will fail if item has children + await this.itemRepository.remove(item); + return item; + } }