github.com/grokify/go-ringcentral-client@v0.3.31/engagevoice/v1/util/campaigns.go (about) 1 package engagevoiceutil 2 3 import ( 4 "context" 5 "fmt" 6 "strconv" 7 8 engagevoice "github.com/grokify/go-ringcentral-client/engagevoice/v1/client" 9 ) 10 11 func GetAllCampaigns(ctx context.Context, apiClient *engagevoice.APIClient, accountID string) ([]engagevoice.Campaign, error) { 12 campaigns := []engagevoice.Campaign{} 13 info, resp, err := apiClient.DialGroupsApi.GetDialGroups( 14 ctx, accountID, 15 ) 16 if err != nil { 17 return campaigns, err 18 } else if resp.StatusCode >= 300 { 19 return campaigns, fmt.Errorf("GetDialGroups Response Status Code [%v]", resp.StatusCode) 20 } 21 22 dialGroupIDs := []int64{} 23 for _, dg := range info { 24 dialGroupIDs = append(dialGroupIDs, dg.DialGroupId) 25 } 26 27 for _, dialGroupID := range dialGroupIDs { 28 info, resp, err := apiClient.DialGroupsApi.GetCampaigns( 29 ctx, 30 accountID, 31 strconv.Itoa(int(dialGroupID)), 32 ) 33 if err != nil { 34 return campaigns, err 35 } else if resp.StatusCode >= 300 { 36 return campaigns, fmt.Errorf("GetDialGroups Response Status Code [%v]", resp.StatusCode) 37 } 38 campaigns = append(campaigns, info...) 39 } 40 return campaigns, nil 41 }