From dc21f1c2bdd9b84b955799702fcf89057272e182 Mon Sep 17 00:00:00 2001 From: Christos Giannouris Date: Mon, 14 Nov 2022 13:51:58 +0100 Subject: [PATCH] refactoring duplicated Logic --- TypeScript/app/gilded-rose.ts | 53 +++++++++++++++-------------------- 1 file changed, 23 insertions(+), 30 deletions(-) diff --git a/TypeScript/app/gilded-rose.ts b/TypeScript/app/gilded-rose.ts index a00c5641..7626438f 100644 --- a/TypeScript/app/gilded-rose.ts +++ b/TypeScript/app/gilded-rose.ts @@ -21,47 +21,40 @@ export class GildedRose { updateQuality() { for (let i = 0; i < this.items.length; i++) { - if ([CNST.AGED_BRIE, CNST.BCST_TAF].includes(this.items[i].name)) { - if (this.items[i].quality > 0) { - if (this.items[i].name != CNST.SULFURAS) { - this.items[i].quality = this.items[i].quality - 1; - } - } + const iterationItem = this.items[i]; + if ( + [CNST.AGED_BRIE, CNST.BCST_TAF].includes(iterationItem.name) && + iterationItem.quality > 0 + ) { + iterationItem.quality = iterationItem.quality - 1; } else { - if (this.items[i].quality < 50) { - this.items[i].quality = this.items[i].quality + 1; - if (this.items[i].name == CNST.BCST_TAF) { - if (this.items[i].sellIn < 11) { - if (this.items[i].quality < 50) { - this.items[i].quality = this.items[i].quality + 1; - } - } - if (this.items[i].sellIn < 6) { - if (this.items[i].quality < 50) { - this.items[i].quality = this.items[i].quality + 1; - } + if (iterationItem.quality < 50) { + iterationItem.quality = iterationItem.quality + 1; + if (iterationItem.name == CNST.BCST_TAF) { + if (iterationItem.sellIn < 11) { + iterationItem.quality = iterationItem.quality + 1; } } } } - if (this.items[i].name != CNST.SULFURAS) { - this.items[i].sellIn = this.items[i].sellIn - 1; + if (iterationItem.name != CNST.SULFURAS) { + iterationItem.sellIn = iterationItem.sellIn - 1; } - if (this.items[i].sellIn < 0) { - if (this.items[i].name != CNST.AGED_BRIE) { - if (this.items[i].name != CNST.BCST_TAF) { - if (this.items[i].quality > 0) { - if (this.items[i].name != CNST.SULFURAS) { - this.items[i].quality = this.items[i].quality - 1; + if (iterationItem.sellIn < 0) { + if (iterationItem.name != CNST.AGED_BRIE) { + if (iterationItem.name != CNST.BCST_TAF) { + if (iterationItem.quality > 0) { + if (iterationItem.name != CNST.SULFURAS) { + iterationItem.quality = iterationItem.quality - 1; } } } else { - this.items[i].quality = - this.items[i].quality - this.items[i].quality; + iterationItem.quality = + iterationItem.quality - iterationItem.quality; } } else { - if (this.items[i].quality < 50) { - this.items[i].quality = this.items[i].quality + 1; + if (iterationItem.quality < 50) { + iterationItem.quality = iterationItem.quality + 1; } } }