diff --git a/timespans/activationperiod.go b/timespans/activationperiod.go index e85b18660..35cd62f4b 100644 --- a/timespans/activationperiod.go +++ b/timespans/activationperiod.go @@ -28,6 +28,7 @@ The struture that is saved to storage. type ActivationPeriod struct { ActivationTime time.Time Intervals []*Interval + Moaca string } /* diff --git a/timespans/kyoto_storage.go b/timespans/kyoto_storage.go index fe7dca3e7..e927b3d7f 100644 --- a/timespans/kyoto_storage.go +++ b/timespans/kyoto_storage.go @@ -82,10 +82,11 @@ func (ks *KyotoStorage) GetActivationPeriods(key string) (aps []*ActivationPerio defer ks.mux.Unlock() values, err := ks.db.Get([]byte(key)) - - ks.buf.Reset() - ks.buf.Write(values) - ks.dec.Decode(&aps) + if err == nil { + ks.buf.Reset() + ks.buf.Write(values) + err = ks.dec.Decode(&aps) + } return } @@ -103,10 +104,11 @@ func (ks *KyotoStorage) GetDestination(key string) (dest *Destination, err error defer ks.mux.Unlock() values, err := ks.db.Get([]byte(key)) - - ks.buf.Reset() - ks.buf.Write(values) - ks.dec.Decode(&dest) + if err == nil { + ks.buf.Reset() + ks.buf.Write(values) + err = ks.dec.Decode(&dest) + } return } @@ -124,10 +126,11 @@ func (ks *KyotoStorage) GetTariffPlan(key string) (tp *TariffPlan, err error) { defer ks.mux.Unlock() values, err := ks.db.Get([]byte(key)) - - ks.buf.Reset() - ks.buf.Write(values) - ks.dec.Decode(&tp) + if err == nil { + ks.buf.Reset() + ks.buf.Write(values) + err = ks.dec.Decode(&tp) + } return } @@ -145,9 +148,10 @@ func (ks *KyotoStorage) GetUserBudget(key string) (ub *UserBudget, err error) { defer ks.mux.Unlock() values, err := ks.db.Get([]byte(key)) - - ks.buf.Reset() - ks.buf.Write(values) - ks.dec.Decode(&ub) + if err == nil { + ks.buf.Reset() + ks.buf.Write(values) + ks.dec.Decode(&ub) + } return } diff --git a/timespans/redis_storage.go b/timespans/redis_storage.go index a05fc3e43..9b87c4d62 100644 --- a/timespans/redis_storage.go +++ b/timespans/redis_storage.go @@ -80,12 +80,13 @@ func (rs *RedisStorage) GetActivationPeriods(key string) (aps []*ActivationPerio //rs.db.Select(rs.dbNb) rs.mux.Lock() defer rs.mux.Unlock() - elem, err := rs.db.Get(key) - rs.buf.Reset() - rs.buf.Write(elem.Bytes()) + if err == nil { + rs.buf.Reset() + rs.buf.Write(elem.Bytes()) - rs.dec.Decode(&aps) + err = rs.dec.Decode(&aps) + } return } @@ -105,9 +106,11 @@ func (rs *RedisStorage) GetDestination(key string) (dest *Destination, err error defer rs.mux.Unlock() elem, err := rs.db.Get(key) - rs.buf.Reset() - rs.buf.Write(elem.Bytes()) - rs.dec.Decode(&dest) + if err == nil { + rs.buf.Reset() + rs.buf.Write(elem.Bytes()) + err = rs.dec.Decode(&dest) + } return } @@ -127,9 +130,11 @@ func (rs *RedisStorage) GetTariffPlan(key string) (tp *TariffPlan, err error) { defer rs.mux.Unlock() elem, err := rs.db.Get(key) - rs.buf.Reset() - rs.buf.Write(elem.Bytes()) - rs.dec.Decode(&tp) + if err == nil { + rs.buf.Reset() + rs.buf.Write(elem.Bytes()) + err = rs.dec.Decode(&tp) + } return } @@ -149,8 +154,10 @@ func (rs *RedisStorage) GetUserBudget(key string) (ub *UserBudget, err error) { defer rs.mux.Unlock() elem, err := rs.db.Get(key) - rs.buf.Reset() - rs.buf.Write(elem.Bytes()) - rs.dec.Decode(&ub) + if err == nil { + rs.buf.Reset() + rs.buf.Write(elem.Bytes()) + err = rs.dec.Decode(&ub) + } return } diff --git a/timespans/test.kch b/timespans/test.kch index ea76560ac..55fd81e2c 100644 Binary files a/timespans/test.kch and b/timespans/test.kch differ