github.com/DaAlbrecht/cf-cli@v0.0.0-20231128151943-1fe19bb400b9/util/batcher/batcher.go (about) 1 package batcher 2 3 import "code.cloudfoundry.org/cli/api/cloudcontroller/ccv3" 4 5 const BatchSize = 200 6 7 type callback func(guids []string) (ccv3.Warnings, error) 8 9 func RequestByGUID(guids []string, cb callback) (ccv3.Warnings, error) { 10 var allWarnings ccv3.Warnings 11 12 for len(guids) > 0 { 13 remaining := len(guids) 14 if remaining > BatchSize { 15 remaining = BatchSize 16 } 17 18 batch := guids[:remaining] 19 guids = guids[remaining:] 20 21 warnings, err := cb(batch) 22 allWarnings = append(allWarnings, warnings...) 23 if err != nil { 24 return allWarnings, err 25 } 26 } 27 28 return allWarnings, nil 29 }