From 87131ef92662af8e0e063eab2649d6a0584d7b6a Mon Sep 17 00:00:00 2001 From: Gayun00 Date: Mon, 25 Sep 2023 17:44:53 +0900 Subject: [PATCH] Refactor: remove duplicated conditional statement - seperate handlePassesQuality --- TypeScript/app/gilded-rose.ts | 51 +++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/TypeScript/app/gilded-rose.ts b/TypeScript/app/gilded-rose.ts index 64dfe8e4..8bbc3a96 100644 --- a/TypeScript/app/gilded-rose.ts +++ b/TypeScript/app/gilded-rose.ts @@ -10,6 +10,11 @@ export class Item { this.sellIn = sellIn; this.quality = quality; } + + // handleSellIn() { + // if (this.name === ITEMS.SURFRAS) return; + // this.sellIn--; + // } } export class GildedRose { @@ -19,6 +24,18 @@ export class GildedRose { this.items = items; } + handlePassesQuality(item) { + if (item.name == ITEMS.PASSES) { + if (6 <= item.sellIn && item.sellIn < 11) { + item.quality += 1; + } + + if (item.sellIn < 6) { + item.quality += 2; + } + } + } + handleIfSellInIs0(item) { if (item.sellIn >= 0) return; @@ -39,33 +56,21 @@ export class GildedRose { updateQuality() { for (const item of this.items) { - if (item.name != ITEMS.BRIE && item.name != ITEMS.PASSES) { - if (!item.quality) break; - if (item.name != ITEMS.SURFRAS) { - item.quality -= 1; - } - } else { - if (item.quality < 50) { - item.quality += 1; - - if (item.name == ITEMS.PASSES) { - if (item.sellIn < 11) { - if (item.quality < 50) { - item.quality += 1; - } - } - - if (item.sellIn < 6) { - if (item.quality >= 50) break; - item.quality += 1; - } - } - } - } + if (!item.quality) break; if (item.name != ITEMS.SURFRAS) { item.sellIn -= 1; } this.handleIfSellInIs0(item); + + if (item.name != ITEMS.BRIE && item.name != ITEMS.PASSES) { + if (item.name === ITEMS.SURFRAS) break; + item.quality -= 1; + } + + if (item.quality >= 50) break; + item.quality += 1; + + this.handlePassesQuality(item); } return this.items;