feat: convertString

This commit is contained in:
debugtalk
2021-10-03 23:49:04 +08:00
parent 7138164429
commit b779511245
2 changed files with 38 additions and 12 deletions

View File

@@ -39,15 +39,21 @@ func parseHeaders(rawHeaders map[string]string, variablesMapping map[string]inte
parsedHeaders := make(map[string]string)
headers := parseData(rawHeaders, variablesMapping).(map[string]interface{})
for k, v := range headers {
if value, ok := v.(string); ok {
parsedHeaders[k] = value
} else {
parsedHeaders[k] = fmt.Sprintf("%v", v)
}
parsedHeaders[k] = convertString(v)
}
return parsedHeaders
}
func convertString(raw interface{}) string {
if value, ok := raw.(string); ok {
return value
} else {
// raw is not string, e.g. int, float, etc.
// convert to string
return fmt.Sprintf("%v", raw)
}
}
func parseData(raw interface{}, variablesMapping map[string]interface{}) interface{} {
rawValue := reflect.ValueOf(raw)
switch rawValue.Kind() {
@@ -68,13 +74,8 @@ func parseData(raw interface{}, variablesMapping map[string]interface{}) interfa
v := rawValue.MapIndex(k)
parsedValue := parseData(v.Interface(), variablesMapping)
if key, ok := parsedKey.(string); ok {
parsedMap[key] = parsedValue
} else {
// parsed key is not string, e.g. int, float, etc.
// convert to string
parsedMap[fmt.Sprintf("%v", parsedKey)] = parsedValue
}
key := convertString(parsedKey)
parsedMap[key] = parsedValue
}
return parsedMap
default:
@@ -313,3 +314,7 @@ func parseFunctionArguments(argsStr string) ([]interface{}, error) {
return arguments, nil
}
func parseVariables(variables map[string]interface{}) (map[string]interface{}, error) {
return variables, nil
}