in model/diversion_bucket.go [38:67]
func NewUidDiversionBucket(bucketCount int, bucketStr string) *UidDiversionBucket {
diversionBucket := &UidDiversionBucket{
bucketCount: bucketCount,
buckets: make(map[int]bool),
}
expBuckets := strings.Split(bucketStr, ",")
for _, bucket := range expBuckets {
if strings.Contains(bucket, "-") {
bucketStrings := strings.Split(bucket, "-")
if len(bucketStrings) == 2 {
start, err1 := strconv.Atoi(bucketStrings[0])
end, err2 := strconv.Atoi(bucketStrings[1])
if err1 == nil && err2 == nil {
for i := start; i < end; i++ {
if i > int(diversionBucket.bucketCount) {
break
}
diversionBucket.buckets[i] = true
}
}
}
} else {
if val, err := strconv.Atoi(bucket); err == nil {
diversionBucket.buckets[val] = true
}
}
}
return diversionBucket
}