From 3f38c217962829e94927c0e1e12b894ffaae72bb Mon Sep 17 00:00:00 2001 From: JoramWilander Date: Tue, 11 Aug 2015 10:54:26 -0400 Subject: fixed channel counts etag to only update when appropriate --- model/channel_count.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'model/channel_count.go') diff --git a/model/channel_count.go b/model/channel_count.go index f53e6acaf..d5daba14e 100644 --- a/model/channel_count.go +++ b/model/channel_count.go @@ -6,7 +6,9 @@ package model import ( "crypto/md5" "encoding/json" + "fmt" "io" + "sort" "strconv" ) @@ -16,12 +18,19 @@ type ChannelCounts struct { } func (o *ChannelCounts) Etag() string { + + ids := []string{} + for id, _ := range o.Counts { + ids = append(ids, id) + } + sort.Strings(ids) + str := "" - for id, count := range o.Counts { - str += id + strconv.FormatInt(count, 10) + for _, id := range ids { + str += id + strconv.FormatInt(o.Counts[id], 10) } - md5Counts := md5.Sum([]byte(str)) + md5Counts := fmt.Sprintf("%x", md5.Sum([]byte(str))) var update int64 = 0 for _, u := range o.UpdateTimes { -- cgit v1.2.3-1-g7c22