(rawParams []interface{})
| 132 | } |
| 133 | |
| 134 | func parseRawParams(rawParams []interface{}) ([]interface{}, error) { |
| 135 | if len(rawParams) == 0 { |
| 136 | return nil, nil |
| 137 | } |
| 138 | params := make([]interface{}, 0) |
| 139 | for _, rawParam := range rawParams { |
| 140 | switch v := rawParam.(type) { |
| 141 | case string: |
| 142 | param, err := parseRawParam(v) |
| 143 | if err != nil { |
| 144 | return nil, err |
| 145 | } |
| 146 | params = append(params, param) |
| 147 | case []interface{}: |
| 148 | res, err := parseRawParams(v) |
| 149 | if err != nil { |
| 150 | return nil, err |
| 151 | } |
| 152 | params = append(params, res) |
| 153 | default: |
| 154 | return nil, fmt.Errorf("unknown param type:%s", reflect.TypeOf(rawParam)) |
| 155 | } |
| 156 | } |
| 157 | return params, nil |
| 158 | } |
| 159 | |
| 160 | func parseRawParam(rawParam string) (interface{}, error) { |
| 161 | rawParam = strings.TrimSpace(rawParam) |
no test coverage detected