From a49d34037f2c7b91ca1407a148c8dd4d55f1b29a Mon Sep 17 00:00:00 2001 From: Jochen Rauschenbusch Date: Mon, 25 May 2020 17:34:38 +0200 Subject: [PATCH] Fixing PR notes --- .../eventgrid_event_subscription_resource.go | 144 +++++++++--------- 1 file changed, 74 insertions(+), 70 deletions(-) diff --git a/azurerm/internal/services/eventgrid/eventgrid_event_subscription_resource.go b/azurerm/internal/services/eventgrid/eventgrid_event_subscription_resource.go index be72cb6057fd..0e5e20bab157 100644 --- a/azurerm/internal/services/eventgrid/eventgrid_event_subscription_resource.go +++ b/azurerm/internal/services/eventgrid/eventgrid_event_subscription_resource.go @@ -598,7 +598,7 @@ func resourceArmEventGridEventSubscriptionRead(d *schema.ResourceData, meta inte if err := d.Set("subject_filter", flattenEventGridEventSubscriptionSubjectFilter(filter)); err != nil { return fmt.Errorf("Error setting `subject_filter` for EventGrid Event Subscription %q (Scope %q): %s", id.Name, id.Scope, err) } - if err := d.Set("advanced_filter", flattenEventGridEventSubscriptionAdvancedFilter(filter.AdvancedFilters)); err != nil { + if err := d.Set("advanced_filter", flattenEventGridEventSubscriptionAdvancedFilter(filter)); err != nil { return fmt.Errorf("Error setting `advanced_filter` for EventGrid Event Subscription %q (Scope %q): %s", id.Name, id.Scope, err) } } @@ -912,7 +912,7 @@ func flattenEventGridEventSubscriptionSubjectFilter(filter *eventgrid.EventSubsc return []interface{}{result} } -func flattenEventGridEventSubscriptionAdvancedFilter(input *[]eventgrid.BasicAdvancedFilter) []interface{} { +func flattenEventGridEventSubscriptionAdvancedFilter(input *eventgrid.EventSubscriptionFilter) []interface{} { results := make([]interface{}, 0) if input == nil { return results @@ -931,91 +931,63 @@ func flattenEventGridEventSubscriptionAdvancedFilter(input *[]eventgrid.BasicAdv stringIn := make([]interface{}, 0) stringNotIn := make([]interface{}, 0) - for _, item := range *input { + for _, item := range *input.AdvancedFilters { switch f := item.(type) { case eventgrid.BoolEqualsAdvancedFilter: - boolEquals = append(boolEquals, map[string]interface{}{ - "key": *f.Key, - "value": *f.Value, - }) + v := interface{}(f.Value) + boolEquals = append(boolEquals, flattenValue(f.Key, &v)) case eventgrid.NumberGreaterThanAdvancedFilter: - numberGreaterThan = append(numberGreaterThan, map[string]interface{}{ - "key": *f.Key, - "value": *f.Value, - }) + v := interface{}(f.Value) + numberGreaterThan = append(numberGreaterThan, flattenValue(f.Key, &v)) case eventgrid.NumberGreaterThanOrEqualsAdvancedFilter: - numberGreaterThanOrEquals = append(numberGreaterThanOrEquals, map[string]interface{}{ - "key": *f.Key, - "value": *f.Value, - }) + v := interface{}(f.Value) + numberGreaterThanOrEquals = append(numberGreaterThanOrEquals, flattenValue(f.Key, &v)) case eventgrid.NumberLessThanAdvancedFilter: - numberLessThan = append(numberLessThan, map[string]interface{}{ - "key": *f.Key, - "value": *f.Value, - }) + v := interface{}(f.Value) + numberLessThan = append(numberLessThan, flattenValue(f.Key, &v)) case eventgrid.NumberLessThanOrEqualsAdvancedFilter: - numberLessThanOrEquals = append(numberLessThanOrEquals, map[string]interface{}{ - "key": *f.Key, - "value": *f.Value, - }) + v := interface{}(f.Value) + numberLessThanOrEquals = append(numberLessThanOrEquals, flattenValue(f.Key, &v)) case eventgrid.NumberInAdvancedFilter: - numberIn = append(numberIn, map[string]interface{}{ - "key": *f.Key, - "values": *f.Values, - }) + v := utils.FlattenFloatSlice(f.Values) + numberIn = append(numberIn, flattenValues(f.Key, &v)) case eventgrid.NumberNotInAdvancedFilter: - numberNotIn = append(numberNotIn, map[string]interface{}{ - "key": *f.Key, - "values": *f.Values, - }) + v := utils.FlattenFloatSlice(f.Values) + numberNotIn = append(numberNotIn, flattenValues(f.Key, &v)) case eventgrid.StringBeginsWithAdvancedFilter: - - stringBeginsWith = append(stringBeginsWith, map[string]interface{}{ - "key": *f.Key, - "values": *f.Values, - }) + v := utils.FlattenStringSlice(f.Values) + stringBeginsWith = append(stringBeginsWith, flattenValues(f.Key, &v)) case eventgrid.StringEndsWithAdvancedFilter: - - stringEndsWith = append(stringEndsWith, map[string]interface{}{ - "key": *f.Key, - "values": *f.Values, - }) + v := utils.FlattenStringSlice(f.Values) + stringEndsWith = append(stringEndsWith, flattenValues(f.Key, &v)) case eventgrid.StringContainsAdvancedFilter: - stringContains = append(stringContains, map[string]interface{}{ - "key": *f.Key, - "values": *f.Values, - }) + v := utils.FlattenStringSlice(f.Values) + stringContains = append(stringContains, flattenValues(f.Key, &v)) case eventgrid.StringInAdvancedFilter: - stringIn = append(stringIn, map[string]interface{}{ - "key": *f.Key, - "values": *f.Values, - }) + v := utils.FlattenStringSlice(f.Values) + stringIn = append(stringIn, flattenValues(f.Key, &v)) case eventgrid.StringNotInAdvancedFilter: - stringNotIn = append(stringNotIn, map[string]interface{}{ - "key": *f.Key, - "values": *f.Values, - }) + v := utils.FlattenStringSlice(f.Values) + stringNotIn = append(stringNotIn, flattenValues(f.Key, &v)) } } - filters := map[string][]interface{}{ - "bool_equals": boolEquals, - "number_greater_than": numberGreaterThan, - "number_greater_than_or_equals": numberGreaterThanOrEquals, - "number_less_than": numberLessThan, - "number_less_than_or_equals": numberLessThanOrEquals, - "number_in": numberIn, - "number_not_in": numberNotIn, - "string_begins_with": stringBeginsWith, - "string_ends_with": stringEndsWith, - "string_contains": stringContains, - "string_in": stringIn, - "string_not_in": stringNotIn, + return []interface{}{ + map[string][]interface{}{ + "bool_equals": boolEquals, + "number_greater_than": numberGreaterThan, + "number_greater_than_or_equals": numberGreaterThanOrEquals, + "number_less_than": numberLessThan, + "number_less_than_or_equals": numberLessThanOrEquals, + "number_in": numberIn, + "number_not_in": numberNotIn, + "string_begins_with": stringBeginsWith, + "string_ends_with": stringEndsWith, + "string_contains": stringContains, + "string_in": stringIn, + "string_not_in": stringNotIn, + }, } - - results = append(results, filters) - - return results } func flattenEventGridEventSubscriptionStorageBlobDeadLetterDestination(dest *eventgrid.StorageBlobDeadLetterDestination) []interface{} { @@ -1048,3 +1020,35 @@ func flattenEventGridEventSubscriptionRetryPolicy(retryPolicy *eventgrid.RetryPo return []interface{}{result} } + +func flattenValue(inputKey *string, inputValue *interface{}) map[string]interface{} { + key := "" + if inputKey != nil { + key = *inputKey + } + var value interface{} + if inputValue != nil { + value = inputValue + } + + return map[string]interface{}{ + "key": key, + "value": value, + } +} + +func flattenValues(inputKey *string, inputValues *[]interface{}) map[string]interface{} { + key := "" + if inputKey != nil { + key = *inputKey + } + values := make([]interface{}, 0) + if inputValues != nil { + values = *inputValues + } + + return map[string]interface{}{ + "key": key, + "values": values, + } +}