GildedRose-Refactoring-Kata/go/services/aged_brie_item_update_service.go

32 lines
712 B
Go

package services
import (
"github.com/emilybache/gildedrose-refactoring-kata/lib"
"github.com/emilybache/gildedrose-refactoring-kata/models"
)
type AgedBrieItemUpdateService struct {
logger lib.Logger
}
func NewAgedBrieItemUpdateService(logger lib.Logger) AgedBrieItemUpdateService {
return AgedBrieItemUpdateService{
logger: logger,
}
}
func (this AgedBrieItemUpdateService) UpdateQuality(item *models.Item) error {
item.Mutex.Lock()
defer item.Mutex.Unlock()
if item.Model.Quality < 50 {
item.Model.Quality++
}
if item.Model.SellIn <= 0 && item.Model.Quality < 50 {
item.Model.Quality++
}
item.Model.SellIn--
return nil
}