azureappconfiguration/settings_client.go (38 lines of code) (raw):

// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. package azureappconfiguration import ( "context" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" "github.com/Azure/azure-sdk-for-go/sdk/data/azappconfig" ) type settingsResponse struct { settings []azappconfig.Setting // TODO: pageETags } type selectorSettingsClient struct { selectors []Selector client *azappconfig.Client } type settingsClient interface { getSettings(ctx context.Context) (*settingsResponse, error) } func (s *selectorSettingsClient) getSettings(ctx context.Context) (*settingsResponse, error) { settings := make([]azappconfig.Setting, 0) for _, filter := range s.selectors { selector := azappconfig.SettingSelector{ KeyFilter: to.Ptr(filter.KeyFilter), LabelFilter: to.Ptr(filter.LabelFilter), Fields: azappconfig.AllSettingFields(), } pager := s.client.NewListSettingsPager(selector, nil) for pager.More() { page, err := pager.NextPage(ctx) if err != nil { return nil, err } else if page.Settings != nil { settings = append(settings, page.Settings...) } } } return &settingsResponse{ settings: settings, }, nil }