github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/scanners/azure/functions/contains.go (about) 1 package functions 2 3 import ( 4 "fmt" 5 "strings" 6 ) 7 8 func Contains(args ...interface{}) interface{} { 9 10 if len(args) != 2 { 11 return false 12 } 13 14 container := args[0] 15 itemToFind := args[1] 16 17 switch cType := container.(type) { 18 case string: 19 switch iType := itemToFind.(type) { 20 case string: 21 return strings.Contains(strings.ToLower(cType), strings.ToLower(iType)) 22 case int, int32, int64, uint, uint32, uint64: 23 return strings.Contains(strings.ToLower(cType), fmt.Sprintf("%d", iType)) 24 } 25 case []interface{}: 26 for _, item := range cType { 27 if item == itemToFind { 28 return true 29 } 30 } 31 case map[string]interface{}: 32 for key := range cType { 33 if key == itemToFind { 34 return true 35 } 36 } 37 } 38 39 return false 40 }