Skip to content

Commit

Permalink
Fixing PR notes
Browse files Browse the repository at this point in the history
  • Loading branch information
jrauschenbusch committed May 25, 2020
1 parent 7315410 commit a49d340
Showing 1 changed file with 74 additions and 70 deletions.
Expand Up @@ -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)
}
}
Expand Down Expand Up @@ -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
Expand All @@ -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{} {
Expand Down Expand Up @@ -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,
}
}

0 comments on commit a49d340

Please sign in to comment.