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  }