func NewUidDiversionBucket()

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
}